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

datalist控件怎么实现分页

我的代码如下,可是实现不了功能,找不到错误,点分页linkbutton的时候没反应,怎么回事啊
后台
 protected void Page_Load(object sender, EventArgs e)
    { if (!IsPostBack)
        {
            MessageBind();
        }


    }
    private void MessageBind()
    {
        string select = "SELECT * FROM product ORDER BY date DESC";
        DataSet ds = Option.GetData(select, "product");
        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = ds.Tables[0].DefaultView;
        pds.AllowPaging = true;
        pds.PageSize = 9;
        NewsSum.Text = pds.DataSourceCount.ToString();
        pds.CurrentPageIndex = Convert.ToInt32(IndexPage.Text) - 1;
        SumPage.Text = pds.PageCount.ToString();
        LinkUp.Enabled = true;
        LinkDown.Enabled = true;
        if (IndexPage.Text == "1")
        {
            LinkUp.Enabled = false;
        }
        if (IndexPage.Text == pds.PageCount.ToString())
        {
            LinkDown.Enabled = false;
        }
        DataList1.DataSource = pds;
        DataList1.DataBind();
    }
    protected void LinkFirst_Click(object sender, EventArgs e)
    {
        IndexPage.Text = "1";
        MessageBind();
    }
    protected void LinkUp_Click(object sender, EventArgs e)
    {
        IndexPage.Text = Convert.ToString(Convert.ToInt32(IndexPage.Text) - 1);
        MessageBind();
    }
    protected void LinkDown_Click(object sender, EventArgs e)
    {
        IndexPage.Text = Convert.ToString(Convert.ToInt32(IndexPage.Text) + 1);
        MessageBind();
    }
    protected void LinkLast_Click(object sender, EventArgs e)
    {
        IndexPage.Text = SumPage.Text;
        MessageBind();
    }
    protected void LinkToSum_Click(object sender, EventArgs e)
    {
        if (IsValidNum(TextSum.Text.Trim()))
        {
            if (Convert.ToInt32(TextSum.Text.Trim()) > Convert.ToInt32(SumPage.Text))
            {
                Response.Write("<script>alert('您输入的页数已经超出范围!');</script>");
                TextSum.Text = "";
            }
            else
            {
                IndexPage.Text = TextSum.Text.Trim();
                MessageBind();
            }
        }
        else
        {
            Response.Write("<script>alert('请输入整数!');</script>");
        }

    }
    //判断修改的数据是否为有效的数据
    public bool IsValidNum(string num)
    {
        return Regex.IsMatch(num, @"^\+?[1-9][0-9]*$");
    }
    //回指定长度字符
    public string GetString(object str)
    {
        return Option.GetString(str, 30);
    }
前台:
 <table style="width: 770px; text-align: center;" cellpadding="0" cellspacing="0">
                <tr>
                <td style="width:770px; text-align: center; font-size:small; height:25px;">
               <asp:LinkButton ID="LinkFirst" runat="server" onclick="LinkFirst_Click">首页</asp:LinkButton>  
               <asp:LinkButton ID="LinkUp" runat="server" onclick="LinkUp_Click">上一页</asp:LinkButton>  
               <asp:LinkButton ID="LinkDown" runat="server" onclick="LinkDown_Click">下一页</asp:LinkButton>  
               <asp:LinkButton ID="LinkLast" runat="server" onclick="LinkLast_Click">尾页</asp:LinkButton>  
               页次:<asp:Label ID="IndexPage" runat="server" Text="1" ForeColor="Red"></asp:Label>/<asp:Label ID="SumPage" runat="server" ></asp:Label>  
               共<asp:Label ID="NewsSum" runat="server" Text=""></asp:Label>条记录  15条记录/页
               转到:<asp:TextBox ID="TextSum" runat="server" Width="30px" Text="1"></asp:TextBox> 页 
               <asp:LinkButton ID="LinkToSum" runat="server" onclick="LinkToSum_Click">确定</asp:LinkButton>
               </td>
               </tr>
             </table>
各位大虾帮忙啊,尽量找我的错误,实在找不到给个有效的方法啊,谢谢 --------------------编程问答-------------------- 用分页控件吧
百度
aspnetpaper --------------------编程问答--------------------
private void indexListBind()
    {
        try
        {
            string parID = Request.QueryString["id"].ToString();
            int curPage = Convert.ToInt32(this.lb_pageIndex.Text) - 1;//获取当前页码,我用的是一个lable.当了中间变量
            con = Admin_DB.getConn();
            con.Open();
            DataSet ds = new DataSet();
            string Path = "~";
            OleDbDataAdapter sda = new OleDbDataAdapter("select ID,'" + Path + "'+imagePath as imagePath,introduce from D_Picture where parID=@parID", con);
            sda.SelectCommand.Parameters.Add(new OleDbParameter("@parID", parID));
            sda.Fill(ds, "index");
            System.Web.UI.WebControls.PagedDataSource ps = new PagedDataSource();//实例化分页数据源
            ps.DataSource = ds.Tables["index"].DefaultView;//将要绑定在datalist上的datatable给分页数据源
            ps.AllowPaging = true;
            ps.PageSize = 8;//每页显示几条记录
            ps.CurrentPageIndex = curPage;//设置当前页的索引(当前页码减1就是)
            this.btn_up.Enabled = true;
            this.btn_next.Enabled = true;
            this.btn_frist.Enabled = true;
            this.btn_end.Enabled = true;
            endPage = ps.PageCount;
            if (curPage == 0)//当是第一页是.上一页和首页的按钮不可用
            {
                this.btn_up.Enabled = false;
                this.btn_frist.Enabled = false;
            }
            if (curPage == ps.PageCount - 1)//当是最后一页时下一页和最后一页的按钮不可用
            {
                this.btn_next.Enabled = false;
                this.btn_end.Enabled = false;
            }
            this.indexList.DataSource = ps;
            this.indexList.DataKeyField = "ID";
            this.indexList.DataBind();
            con.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

    }
    protected void btn_frist_Click(object sender, EventArgs e)
    {
        this.lb_pageIndex.Text = "1";
        this.indexListBind();
    }
    protected void btn_up_Click(object sender, EventArgs e)
    {
        int page = int.Parse(this.lb_pageIndex.Text) - 1;
        this.lb_pageIndex.Text = page.ToString();
        this.indexListBind();
    }
    protected void btn_next_Click(object sender, EventArgs e)
    {
        int page = int.Parse(this.lb_pageIndex.Text) + 1;
        this.lb_pageIndex.Text = page.ToString();
        this.indexListBind();
    }
    protected void btn_end_Click(object sender, EventArgs e)
    {
        this.lb_pageIndex.Text = endPage.ToString();
        this.indexListBind();
    }
--------------------编程问答-------------------- datalist分页与排序实例
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,