asp.net中gridview自动翻页如何实现?
<PagerTemplate>
<table width="100%" style="font-size: 12px;">
<tr>
<td style="text-align: right">
<%#((GridView)Container.NamingContainer).PageIndex+1 %>
/
<%#((GridView)Container.NamingContainer).PageCount %>
<asp:LinkButton ID="LinkButtonFirstPage" runat="server" CommandArgument="First" CommandName="Page"
Enable="<%#((GridView)Container.NamingContainer).PageIndex!=0 %>">首页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonPreviousPage" runat="server" CommandArgument="prev"
CommandName="Page" Enable="<%#((GridView)Container.NamingContainer).PageIndex!=0 %>">上一页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonNextPage" runat="server" CommandArgument="Next" CommandName="Page"
Enable="<%#((GridView)Container.NamingContainer).PageIndex!=((GridView)Container.NamingContainer).PageCount-1 %>">下一页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonLastPage" runat="server" CommandArgument="Last" CommandName="Page"
Enable="<%#((GridView)Container.NamingContainer).PageIndex!=((GridView)Container.NamingContainer).PageCount-1 %>">尾页</asp:LinkButton>
</td>
</tr>
</table>
</PagerTemplate>
注意:这段代码要放在GridView的里面 </Columns>的后面 分页功能必须开启也就是ALLOWPAGING属性为true 我这段代码,就直接复制粘贴就可以用了,不比改动如何代码,
操作如下:
1、更改GrdView控件的AllowPaging属性为true。
2、更改GrdView控件的PageSize属性为 任意数值(默认为10)
3、更改GrdView控件的PageSetting->Mode为Numeric等(默认为Numeric)该属性为分页样式。
GridView属性设置好了,从页面上也能看到分页样式。
现在开始实现分页的功能:
1、在<<asp:GridView ID=......>后添加,OnPageIndexChanging="GridView1_PageIndexChanging"
2、在对应的aspx.cs中添加:
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
InitPage(); //重新绑定GridView数据的函数
}
3、
GridView1.PageIndex = e.NewPageIndex;
完了之后再重新绑定一下GridView。
如果要自己跑,就要其它加点东东了
private bool 是否自动翻页
{
get { object x = ViewState["是否自动翻页"]; return x != null && (bool)x; }
set { ViewState["是否自动翻页"] = value; 自动翻页页号 = 1; }
}
private int 自动翻页页号
{
get { object x = ViewState["自动翻页页号"]; return x == null ? 0 : (int)x; }
set { ViewState["自动翻页页号"] = value; }
}
private int 自动翻页截止页号
{
get { object x = ViewState["自动翻页截止页号"]; return x == null ? 0 : (int)x; }
set { ViewState["自动翻页截止页号"] = value; }
}
protected override void RenderChildren(HtmlTextWriter writer)
{
if (是否自动翻页)
{
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "自动翻页", "setTimeout('" +
this.Page.ClientScript.GetPostBackEventReference(this.GridView1, "Page$" + 自动翻页页号.ToString(), true).Replace("'", "\\'") +
"',3000);", true);
}
base.RenderChildren(writer);
}
protected void Page_PreRender(object sender, EventArgs e)
{
if (是否自动翻页)
if (自动翻页页号 < 自动翻页截止页号)
自动翻页页号++;
else
是否自动翻页 = false;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
是否自动翻页 = true; //这里只是演示。实际上不一定放在Page_Load中,在任何事件中设置此参数,都会开始自动翻页动作。
自动翻页截止页号 = 100;
}
}