我正试图找到一种方法来逐页浏览gridview表。在我的数据库中,我有一个"赛季"字段,我希望2014年的所有数据显示在一个页面上,所有数据从2013年显示在另一个页面上,等等。这也需要基于年份的不同行数。
答案 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函数是您从
中获取数据的函数**您可能还想显示当前显示的数据年度