基于年份字段在gridview中进行分页

时间:2014-06-24 20:26:17

标签: c# asp.net sql gridview

我正试图找到一种方法来逐页浏览gridview表。在我的数据库中,我有一个"赛季"字段,我希望2014年的所有数据显示在一个页面上,所有数据从2013年显示在另一个页面上,等等。这也需要基于年份的不同行数。

1 个答案:

答案 0 :(得分:0)

我将如何做到这一点。我不会使用gridview的默认分页来处理这个问题。相反,我会按钮(或链接按钮)模仿分页,以便您控制分页。这样,您就可以处理年度变化并控制显示的内容。

步骤如下:

1)将您的gridview添加到页面大小的页面,只显示所有内容

<asp:GridView ID="dgvRequests" runat="server" AutoGenerateColumns="False" PageSize="9999"> </asp:GridView>

2)在后面的代码中将每年数据绑定到它,因为您在页面加载中每年显示一次。以及存储变量以跟踪年份

public int CurrentYear
{
    get {
        if(ViewState["currentYear"] != null)
            return (int)ViewState["currentYear"];
        return 2014; //Default
    }
    set {
        _ViewState["currentYear"]= value;
    }
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        dgvRequests.DataSource = GetYearData(CurrentYear); //Or Your variable
        dgvRequests.DataBind();
        }
}

3)制作控件来控制页面。我使用了Link Buttons

<asp:LinkButton ID="lbtnPrevious" runat="server" OnClick="lbtnPrevious_Click"></asp:LinkButton>
<asp:LinkButton ID="lbtnlNext" runat="server" OnClick="lbtnlNext_Click"></asp:LinkButton>

4)在click事件中,通过click事件控制gridviews的分页

protected void lbtnlNext_Click(object sender, EventArgs e)
{
    dgvRequests.DataSource = GetYearData(++CurrentYear); //Or Your variable
    dgvRequests.DataBind();
}
protected void lbtnPrevious_Click(object sender, EventArgs e)
{
    dgvRequests.DataSource = GetYearData(--CurrentYear); //Or Your variable
    dgvRequests.DataBind();
}

这应该允许你进入&#34; Page&#34;实质上是通过使用控件而不是分页功能。

** GetYearData函数是您从

中获取数据的函数

**您可能还想显示当前显示的数据年度