使用PagedDataSource的自定义寻呼机的next和prev按钮

时间:2012-01-02 09:26:48

标签: c# asp.net

我正在尝试在我的自定义寻呼机上获取下一个和上一个按钮。这是我到目前为止所做的工作,除了需要下一个和上一个按钮外,它的工作正常。

我做了什么

 PagedDataSource page = new PagedDataSource();

                page.AllowCustomPaging = true;
                page.AllowPaging = true;
                page.DataSource = query;
                page.PageSize = 5;
                QRep.DataSource = page;
                QRep.DataBind();

* Qrep是一个asp.net转发器控件,*查询是linq到sql查询的结果。

以下是我创建寻呼机控件和指定事件处理程序的方法

private void CreatePagingControl()
    {
        for (int i = 0; i < (RowCount / 5) + 1; i++)
        {


            LinkButton lnk = new LinkButton();
            lnk.Click += new EventHandler(lbl_Click);
            lnk.ID = "lnkPage" + (i + 1).ToString();
            lnk.Text = (i + 1).ToString();
            plcPaging.Controls.Add(lnk);
            Label spacer = new Label();
            spacer.Text = "&nbsp;";
            plcPaging.Controls.Add(spacer);

        }

    }

    void lbl_Click(object sender, EventArgs e)
    {
        LinkButton lnk = sender as LinkButton;
        int currentPage = int.Parse(lnk.Text);
        int take = currentPage * 5;
        int skip = currentPage == 1 ? 0 : take - 5;
        FetchData(take, skip);
    }    

行计数存储如下

private int RowCount
    {
        get
        {
            return (int)ViewState["RowCount"];
        }
        set
        {
            ViewState["RowCount"] = value;
        }
    }

这很好用,除了它只显示页码,我想知道next和prev控件如何与它集成。任何帮助appuricated的人。提前谢谢。

1 个答案:

答案 0 :(得分:1)

请参阅asp.net 3.5的开源寻呼机控件:
http://www.codeproject.com/KB/custom-controls/ASPNETPagerControl.aspx

修改

还有另一个带源代码的asp.net寻呼机控件:
http://aspnetpager.codeplex.com/