大家往往在分页时感觉不好控制,在这里只需要在GridView里面的PagerTemplate模板里进行设置就可以了。
具体就是在GridView里面添加如下:
<PagerTemplate><div style="text-align:center; color:Blue">
<asp:LinkButton ID="cmdFirstPage" runat="server" CommandName="Page" CommandArgument="First"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>">首页</asp:LinkButton>
<asp:LinkButton ID="cmdPreview" runat="server" CommandArgument="Prev" CommandName="Page"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>">前页</asp:LinkButton>
第<asp:Label ID="lblcurPage" ForeColor="Blue" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex+1 %>'></asp:Label>页/共<asp:Label
ID="lblPageCount" ForeColor="blue" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageCount %>'></asp:Label>页
<asp:LinkButton ID="cmdNext" runat="server" CommandName="Page" CommandArgument="Next"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>">后页</asp:LinkButton>
<asp:LinkButton ID="cmdLastPage" runat="server" CommandArgument="Last" CommandName="Page"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>">尾页</asp:LinkButton>
<asp:TextBox ID="txtGoPage" OnTextChanged="txtGoPage_TextChanged" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex+1 %>'
Width="32px" CssClass="inputmini"></asp:TextBox>页<asp:Button ID="Button3" runat="server"
OnClick="Turn_Click" Text="转到" /></div>
</PagerTemplate>
这样只需在后台填写两个事件:GridView1_PageIndexChanging和Turn_Click
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
bind();//对GridView进行再次绑定,该函数由自己编写
}
protected void Turn_Click(object sender, EventArgs e)
{ GridView1.PageIndex = int.Parse(((TextBox)GridView1.BottomPagerRow.FindControl("txtGoPage")).Text)-1;
bind();//对GridView进行再次绑定,该函数由自己编写
}
具体就是在GridView里面添加如下:
<PagerTemplate><div style="text-align:center; color:Blue">
<asp:LinkButton ID="cmdFirstPage" runat="server" CommandName="Page" CommandArgument="First"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>">首页</asp:LinkButton>
<asp:LinkButton ID="cmdPreview" runat="server" CommandArgument="Prev" CommandName="Page"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>">前页</asp:LinkButton>
第<asp:Label ID="lblcurPage" ForeColor="Blue" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex+1 %>'></asp:Label>页/共<asp:Label
ID="lblPageCount" ForeColor="blue" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageCount %>'></asp:Label>页
<asp:LinkButton ID="cmdNext" runat="server" CommandName="Page" CommandArgument="Next"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>">后页</asp:LinkButton>
<asp:LinkButton ID="cmdLastPage" runat="server" CommandArgument="Last" CommandName="Page"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>">尾页</asp:LinkButton>
<asp:TextBox ID="txtGoPage" OnTextChanged="txtGoPage_TextChanged" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex+1 %>'
Width="32px" CssClass="inputmini"></asp:TextBox>页<asp:Button ID="Button3" runat="server"
OnClick="Turn_Click" Text="转到" /></div>
</PagerTemplate>
这样只需在后台填写两个事件:GridView1_PageIndexChanging和Turn_Click
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
bind();//对GridView进行再次绑定,该函数由自己编写
}
protected void Turn_Click(object sender, EventArgs e)
{ GridView1.PageIndex = int.Parse(((TextBox)GridView1.BottomPagerRow.FindControl("txtGoPage")).Text)-1;
bind();//对GridView进行再次绑定,该函数由自己编写
}
PageSize="4" OnPageIndexChanging="GridView1_PageIndexChanging">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
标题</HeaderTemplate>
<ItemTemplate>
<%#Eval("Title")%></ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerTemplate>
<div style="text-align: center; color: Blue">
<asp:LinkButton ID="cmdFirstPage" runat="server" CommandName="Page" CommandArgument="First"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>">首页</asp:LinkButton>
<asp:LinkButton ID="cmdPreview" runat="server" CommandArgument="Prev" CommandName="Page"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=0 %>">前页</asp:LinkButton>
第<asp:Label ID="lblcurPage" ForeColor="Blue" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex+1 %>'></asp:Label>页/共<asp:Label
ID="lblPageCount" ForeColor="blue" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageCount %>'></asp:Label>页
<asp:LinkButton ID="cmdNext" runat="server" CommandName="Page" CommandArgument="Next"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>">后页</asp:LinkButton>
<asp:LinkButton ID="cmdLastPage" runat="server" CommandArgument="Last" CommandName="Page"
Enabled="<%# ((GridView)Container.Parent.Parent).PageIndex!=((GridView)Container.Parent.Parent).PageCount-1 %>">尾页</asp:LinkButton>
<asp:TextBox ID="txtGoPage" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex+1 %>'
Width="32px"></asp:TextBox>页<asp:Button ID="Button3" runat="server" OnClick="Turn_Click"
Text="转到" /></div>
</PagerTemplate>
</asp:GridView>
public partial class TestGridView : System.Web.UI.Page
{
static DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
CreateDataTable();
BindGridView();
}
} public void CreateDataTable()
{
if (!dt.Columns.Contains("Title"))
{
dt.Columns.Add(new DataColumn("Title"));
}
DataRow dr = dt.NewRow();
dr["Title"] = "人工智能(感人科幻之推荐)";
dt.Rows.Add(dr);
DataRow dr1 = dt.NewRow();
dr1["Title"] = "我的兄弟叫顺溜";
dt.Rows.Add(dr1);
DataRow dr2 = dt.NewRow();
dr2["Title"] = "我和僵尸有个约会";
dt.Rows.Add(dr2);
DataRow dr3 = dt.NewRow();
dr3["Title"] = "大话西游";
dt.Rows.Add(dr3);
DataRow dr4 = dt.NewRow();
dr4["Title"] = "重庆森林";
dt.Rows.Add(dr4);
}
public void BindGridView()
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindGridView();
}
protected void Turn_Click(object sender, EventArgs e)
{ GridView1.PageIndex = int.Parse(((TextBox)GridView1.BottomPagerRow.FindControl("txtGoPage")).Text) - 1;
BindGridView();
}
}
分页吗,自己写一个自定义控件,系统中用很方便的。