当前位置:编程学习 > C#/ASP.NET >>

AspNetPager分页控件怎么去写成Page_Load绑定 求解

 官方给的这个完全不知道怎么去修改

   protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            int totalOrders = (int)SqlHelper.ExecuteScalar(CommandType.StoredProcedure, "P_GetOrderNumber");
            AspNetPager1.RecordCount = totalOrders;
            //bindData(); //使用url分页,只需在分页事件处理程序中绑定数据即可,无需在Page_Load中绑定,否则会导致数据被绑定两次
        }
    }

    void bindData()
    {
        Repeater1.DataSource = SqlHelper.ExecuteReader(CommandType.StoredProcedure, ConfigurationManager.AppSettings["pagedSPName"],
            new SqlParameter("@startIndex", AspNetPager1.StartRecordIndex),
            new SqlParameter("@endIndex", AspNetPager1.EndRecordIndex));
        Repeater1.DataBind();
    }

    protected void AspNetPager1_PageChanged(object src, EventArgs e)
    {
        bindData();
    }

这个完全看不到  如果能写成下面类型就行了

protected void Page_Load(object sender, EventArgs e)

    if (!IsPostBack)
    { 
        Repeater1.DataSource = pds(); 
        Repeater1.DataBind(); 
    }

    private PagedDataSource pds() 
    {
        TextBox2.Text = Request.QueryString["N_title"];
        SqlConnection con = new SqlConnection("server=192.168.0.100;database=dmj;uid=dmjcom;pwd=123");
        con.Open();
        SqlCommand cmd = new SqlCommand("select N_title,N_datetime from qbnews where contains(qbnews.*,'" + TextBox2.Text + "')", con);
        SqlDataAdapter sda = new SqlDataAdapter();
        sda.SelectCommand = cmd;
        DataSet ds = new DataSet();
        sda.Fill(ds, "qbnews");
        con.Close();
        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = ds.Tables["qbnews"].DefaultView;
        pds.AllowPaging = true;
        pds.PageSize = 2;
        pds.CurrentPageIndex = Convert.ToInt32(Request.QueryString["page"]);
        return pds;
    }  省略...... --------------------编程问答-------------------- 看不懂你想说什么?

上面那个带分页控件,第一步设置分页控件的总数,第二步在分页控件的Paging事件中绑定数据源;而下面那个直接绑定数据源,和分页控件没关系。 --------------------编程问答-------------------- http://blog.csdn.net/dalmeeme/article/details/6769583 --------------------编程问答-------------------- 有repeater的吗? --------------------编程问答--------------------
引用 3 楼 dmjaspnet 的回复:
有repeater的吗?

一样的用法,变通一下就行了。 --------------------编程问答-------------------- 没学过这方面的知识  只会套用   简单改改 --------------------编程问答-------------------- 就是把GridView改成Repeater,设置Repeater的项模板,用类似<%#Eval("字段名")%>这种形式绑定一下。
几乎学过asp.net的人都会这种修改。 --------------------编程问答-------------------- 另外sql语句可能要改下,因为sqlite同sql server的语法有所不同。 --------------------编程问答-------------------- SqlConnection con = new SqlConnection("server=192.168.0.100;database=dmj;uid=dmjcom;pwd=123");
        con.Open();
        SqlCommand cmd = new SqlCommand("select N_title,N_datetime from qbnews where contains(qbnews.*,'" + TextBox2.Text + "')", con);
这个我不知道放在那里

 AspNetPager1.RecordCount = md.ExecuteScalar<int>("select count(*) from city");  
    DataTable dt = md.FillDataTable(string.Format("select * from city limit {0},{1}", (pageIndex - 1) * pageSize, pageSize)); 
这两条的数据库语句都没用过 --------------------编程问答-------------------- 大致上是这样:
	protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
DisplayData(1, AspNetPager1.PageSize);
}

private void DisplayData(int pageIndex, int pageSize)
{
SqlConnection con = new SqlConnection("server=192.168.0.100;database=dmj;uid=dmjcom;pwd=123");
SqlCommand cmd = new SqlCommand("select count(*) from qbnews where 条件", con);
con.Open();
AspNetPager1.RecordCount = (int)cmd.ExecuteScalar();
cmd.CommandText = string.Format("select top {0} * from qbnews where 主键 not in(select top {1} 主键 from qbnews order by 主键) order by 主键", pageSize, (pageIndex - 1) * pageSize);
SqlDataReader reader = cmd.ExecuteReader();
Repeater1.DataSource = reader;
Repeater1.DataBind();
con.Close();
}

protected void AspNetPager1_PageChanging(object src, PageChangingEventArgs e)
{
DisplayData(e.NewPageIndex, AspNetPager1.PageSize);
}
--------------------编程问答-------------------- protected void AspNetPager1_PageChanging(object src, PageChangingEventArgs e)
PageChangingEventArgs 
找不到类型或命名空间名称“PageChangingEventArgs”(是否缺少 using 指令或程序集引用?) --------------------编程问答-------------------- 晕,你连C#的基础都没有啊,那还怎么写啊。另外不要一碰到错误就上来问,自己用关键字google一下,它上面不是已经说得很明显了?是否缺少 using 指令或程序集引用
如果你连这个怎么解决都不知道,我也没法了。
--------------------编程问答--------------------
引用 10 楼 dmjaspnet 的回复:
protected void AspNetPager1_PageChanging(object src, PageChangingEventArgs e)
PageChangingEventArgs 
找不到类型或命名空间名称“PageChangingEventArgs”(是否缺少 using 指令或程序集引用?)

正确的应该是用PageChanged事件,而不是PageChanging。最新的控件示例和文档请访问:http://www.webdiyer.com/controls/aspnetpager --------------------编程问答-------------------- 就是把GridView改成Repeater,设置Repeater的项模板,用类似<%#Eval("字段名")%>这种形式绑定一下。
几乎学过asp.net的人都会这种修改。 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,