asp.net中gridview自动翻页如何实现?

2024-11-14 11:54:03
推荐回答(2个)
回答1:

                    

                        

                            

                                <%#((GridView)Container.NamingContainer).PageIndex+1 %>

                                /

                                <%#((GridView)Container.NamingContainer).PageCount %>

                                

                                    Enable="<%#((GridView)Container.NamingContainer).PageIndex!=0 %>">首页

                                

                                    CommandName="Page" Enable="<%#((GridView)Container.NamingContainer).PageIndex!=0 %>">上一页

                                

                                    Enable="<%#((GridView)Container.NamingContainer).PageIndex!=((GridView)Container.NamingContainer).PageCount-1 %>">下一页

                                

                                    Enable="<%#((GridView)Container.NamingContainer).PageIndex!=((GridView)Container.NamingContainer).PageCount-1 %>">尾页

                            

                        

                    

                

注意:这段代码要放在GridView的里面   的后面    分页功能必须开启也就是ALLOWPAGING属性为true      我这段代码,就直接复制粘贴就可以用了,不比改动如何代码,

回答2:

要实现GrdView分页的功能。
操作如下:
1、更改GrdView控件的AllowPaging属性为true。
2、更改GrdView控件的PageSize属性为 任意数值(默认为10)
3、更改GrdView控件的PageSetting->Mode为Numeric等(默认为Numeric)该属性为分页样式。
GridView属性设置好了,从页面上也能看到分页样式。

现在开始实现分页的功能:
1、在<后添加,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;
}
}