真的很菜,但是遇到这个任务,没办法,硬着头皮在弄,求教各位大神,帮忙改改,只要实现上一页,下一页,跳转到第几页就好的。
<PagerTemplate>
<div id="GvPage">
共<asp:Label ID="Lb_count" runat="server"
Text="<%#((GridView)Container.NamingContainer).PageCount %>"></asp:Label>页
<asp:LinkButton ID="LinkButtonFirstPage" runat="server" CommandArgument="First" CommandName="Page"
Enabled="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">首页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonPreviousPage" runat="server" CommandArgument="Prev"
CommandName="Page" Enabled="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">上一页</asp:LinkButton>
转到第<asp:TextBox ID="txtNum" runat="server" Width="25px"></asp:TextBox>页
<asp:LinkButton ID="btnGo" runat="server" CausesValidation="False" CommandArgument="btnGO"
CommandName="Page" Text="跳转" OnClick="btnGo_Click" />
<asp:LinkButton ID="LinkButtonNextPage" runat="server" CommandArgument="Next" CommandName="Page"
Enabled="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">下一页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonLastPage" runat="server" CommandArgument="Last" CommandName="Page"
Enabled="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">尾页</asp:LinkButton>
</div>
</PagerTemplate>
<PagerTemplate>
<div id="GvPage">
共<asp:Label ID="Lb_count" runat="server"
Text="<%#((GridView)Container.NamingContainer).PageCount %>"></asp:Label>页
<asp:LinkButton ID="LinkButtonFirstPage" runat="server" CommandArgument="First" CommandName="Page"
Enabled="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">首页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonPreviousPage" runat="server" CommandArgument="Prev"
CommandName="Page" Enabled="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">上一页</asp:LinkButton>
转到第<asp:TextBox ID="txtNum" runat="server" Width="25px"></asp:TextBox>页
<asp:LinkButton ID="btnGo" runat="server" CausesValidation="False" CommandArgument="btnGO"
CommandName="Page" Text="跳转" OnClick="btnGo_Click" />
<asp:LinkButton ID="LinkButtonNextPage" runat="server" CommandArgument="Next" CommandName="Page"
Enabled="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">下一页</asp:LinkButton>
<asp:LinkButton ID="LinkButtonLastPage" runat="server" CommandArgument="Last" CommandName="Page"
Enabled="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">尾页</asp:LinkButton>
</div>
</PagerTemplate>
解决方案 »
- 一个简单的需求
- 动态绑定多项框的问题
- asp.net正则表达式怎么学
- 请教:在WEB自定义控件开发过程中,生成的DIV嵌套Img对象时,结束符号之间换行引起的间隔的问题。
- asp.net中在页面类文件中怎样获取jsp返回的字符串?
- 接了个私活,由于本人是做开发的,对美工方面不太擅长,所以就在网上下的韩国模板,稍微改动了点,不知道涉不涉及侵权啊,谢谢~
- Oracle的问题
- web开发中怎样才能做出漂亮的界面?望高手赐教。
- asp.net多用户博客用户页面是否应该使用缓存?
- 动态创建控件,怎么看不见??立即给分!
- 在C# WEBFORM中能不能实现Socket编程?
- 网站的序列号,一般取客户电脑上的什么硬件标识好呢,
我的QQ 674170665
aspnetpager
分页代码百度一下出来很多
1、在.aspx页面在你需要分页的位置加上:
<asp:Button ID="Button1" runat="server" Text="上一页" onclick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="下一页" onclick="Button2_Click" />
这两控件
2、在.aspx.cs文件上写入代码:
public void sql()
{
string sqlstr = "select * from Album_Table";
DataTable db3 = DB.ExecuteDataSet(sqlstr); DataView dev= DB.ExecuteDataSet(sqlstr).DefaultView; DataGrid1.DataSource = dev;
DataGrid1.DataBind(); //数据绑定到DataGrid1
string counmpage;
if (dev.Count > 0)
{
if (dev.Count % 10 == 0) //每页10条数据
counmpage = Convert.ToString(dev.Count / DataGrid1.PageSize);
else
{
counmpage = Convert.ToString(dev.Count / DataGrid1.PageSize + 1); }
if (DataGrid1.CurrentPageIndex == 0)
{
Button1.Enabled = false; }
else
{
Button1.Enabled = true;
}
if (DataGrid1.CurrentPageIndex.ToString() == Convert.ToString(Convert.ToInt32(counmpage) - 1))
{
Button2.Enabled = false;
}
else
{
Button2.Enabled = true;
} }
else
{
DataGrid1.DataSource = null;
DataGrid1.DataBind();
} }
protected void Button1_Click(object sender, EventArgs e)
{
DataGrid1.CurrentPageIndex = DataGrid1.CurrentPageIndex - 1;
DataGrid1.DataBind();
sql();
}
protected void Button2_Click(object sender, EventArgs e)
{
DataGrid1.CurrentPageIndex = DataGrid1.CurrentPageIndex + 1;
DataGrid1.DataBind();
sql();
}
<table id="Table2" width="98%" align="right">
<tr>
<td align="right" >第
<asp:literal id="PageIndex" runat="server"></asp:literal> 页 共
<asp:literal id="PageCount" runat="server"></asp:literal> 页 共
<asp:literal id="RecordCount" runat="server"></asp:literal> 条
<asp:linkbutton id="First" runat="server" CommandName="First">首页</asp:linkbutton>
<asp:linkbutton id="Prev" runat="server" CommandName="Prev">上一页</asp:linkbutton>
<asp:linkbutton id="Next" runat="server" CommandName="Next">下一页</asp:linkbutton>
<asp:linkbutton id="Last" runat="server" CommandName="Last">尾页</asp:linkbutton>
转<asp:TextBox ID="txtPageIndex" Runat="server" Width="32px"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="txtPageIndex" Display="Dynamic" ErrorMessage="只能是大于0的整数"
ForeColor="Red"
ValidationExpression="^([0-9]*[1-9][0-9]*)$"></asp:RegularExpressionValidator>
页
</td>
<td align="left" width="3%">
<asp:Button ID="btnRect" Text="Go" Runat="server" Width="24px" Height="15px" onclick="btnRect_Click1" CssClass="IOP_Input01"></asp:Button> </td>
</tr>
</table>
后台用到的一些方法:
private void Bangding()
{
DataTable dt=要绑定的数据;
recordCount = dt.Rows.Count;
pageCount = (int)Math.Ceiling(recordCount * 1.0 / dg.PageSize);
if (recordCount == 0)
{
dg.CurrentPageIndex = 0;
}
else if (dg.CurrentPageIndex >= pageCount)
{
dg.CurrentPageIndex = pageCount - 1;
} dg.DataSource = dt;
dg.DataBind();
NavigationStateChange();
}#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
} /// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.First.Click += new System.EventHandler(this.Test_Click);
this.Prev.Click += new System.EventHandler(this.Test_Click);
this.Next.Click += new System.EventHandler(this.Test_Click);
this.Last.Click += new System.EventHandler(this.Test_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
// 总页数
public int PageCount
{
get { return this.dg.PageCount; }
}
//页大小
public int PageSize
{
get { return this.dg.PageSize; }
}
//页索引,从零开始
public int PageIndex
{
get { return this.dg.CurrentPageIndex; }
set { this.dg.CurrentPageIndex = value; }
}
// 纪录总数
public int RecordCount
{
get { return recordCount; }
set { recordCount = value; }
}
public void NavigationStateChange()
{
if (PageCount <= 1)//( RecordCount <= PageSize )
{
this.First.Enabled = false;
this.Prev.Enabled = false;
this.Next.Enabled = false;
this.Last.Enabled = false;
}
else
{
if (PageIndex == 0)
{
this.First.Enabled = false;
this.Prev.Enabled = false;
this.Next.Enabled = true;
this.Last.Enabled = true; }
else if (PageIndex == PageCount - 1)
{
this.First.Enabled = true;
this.Prev.Enabled = true;
this.Next.Enabled = false;
this.Last.Enabled = false; }
else
{
this.First.Enabled = true;
this.Prev.Enabled = true;
this.Next.Enabled = true;
this.Last.Enabled = true;
} }
if (RecordCount == 0)
this.PageCount.Text = "0";
else
this.PageCount.Text = PageCount.ToString();
if (RecordCount == 0)
this.PageIndex.Text = "0";
else
this.PageIndex.Text = (PageIndex + 1).ToString(); this.RecordCount.Text = RecordCount.ToString();
} protected void btnRect_Click1(object sender, EventArgs e)
{
int num = Int32.Parse((this.txtPageIndex.Text != "") ? this.txtPageIndex.Text : "0");
if (num <= 0 || num > (this.dg.PageCount))
return;
else
{
PageIndex = (num - 1);
Bangding();
}
} private void Test_Click(object sender, System.EventArgs e)
{
LinkButton btn = (LinkButton)sender;
switch (btn.CommandName)
{
case "First":
PageIndex = 0;
break;
case "Prev":
PageIndex = PageIndex - 1;
break;
case "Next":
PageIndex = PageIndex + 1;
break;
case "Last":
PageIndex = PageCount - 1;
break;
}
Bangding();
}
还是建议你去下个分页控件、人家都写好了、功能很强大 aspnetpager
HTML代码 <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
DataSourceID="ObjectDataSource1"
onpageindexchanging="GridView2_PageIndexChanging">
<Columns>
<asp:BoundField DataField="Description" HeaderText="Description"
SortExpression="Description" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
</Columns>
<PagerTemplate>
<asp:Label ID="lblPage" runat="server" Text='<%# "第" + (((GridView)Container.NamingContainer).PageIndex + 1) + "页/共" + (((GridView)Container.NamingContainer).PageCount) + "页" %> '></asp:Label>
<asp:LinkButton ID="lbnFirst" runat="Server" Text="首页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>' CommandName="Page" CommandArgument="First" CssClass="aa" ></asp:LinkButton>
<asp:LinkButton ID="lbnPrev" runat="server" Text="上一页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>' CommandName="Page" CommandArgument="Prev" CssClass="aa" ></asp:LinkButton>
<asp:LinkButton ID="lbnNext" runat="Server" Text="下一页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>' CommandName="Page" CommandArgument="Next" CssClass="aa"></asp:LinkButton>
<asp:LinkButton ID="lbnLast" runat="Server" Text="尾页" Enabled='<%# ((GridView)Container.NamingContainer).PageIndex != (((GridView)Container.NamingContainer).PageCount - 1) %>' CommandName="Page" CommandArgument="Last" CssClass="aa"></asp:LinkButton> 转到第<asp:TextBox ID="TextBoxnewPage" runat="server" Width="25px" Text='<%#((GridView)Container.Parent.Parent).PageIndex+1 %>' />页
<asp:LinkButton ID="btnGo" runat="server" Text="跳转" CausesValidation="true" CommandArgument="-2"
CommandName="Page" CssClass="aa" />
<asp:RegularExpressionValidator ID="rev" runat="server" ControlToValidate="TextBoxnewPage"
ForeColor="Red" Font-Size="Small" ValidationExpression="^[0-9]*$">*请输入数字</asp:RegularExpressionValidator>
</PagerTemplate>
</asp:GridView>
<%-- 不会写绑定数据的话这里拖个ObjectDataSource 去绑定就是了--%>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
onobjectcreating="ObjectDataSource1_ObjectCreating" SelectMethod="Get"
TypeName="Vanda.NHibernate.Cargos.CargoCategoryManager">
</asp:ObjectDataSource>
CS代码 protected void GridView2_PageIndexChanging(object sender, GridViewPageEventArgs e) {
GridViewRow pagerow = GridView2.BottomPagerRow;
GridView2.PageIndex = Convert.ToInt32((pagerow.FindControl("TextBoxnewPage") as TextBox).Text) - 1;
} protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e) {
e.ObjectInstance = Global.CargoCategoryManager;//这句是绑定数据用的、
} //你可以写后台代码去绑定数据、
protected void Page_Load(object sender, EventArgs e) {
BindGridView();
}
private void BindGridView() {
IList<Cargos.CargoCategory> dd = Global.CargoCategoryManager.Get();//获取数据
GridView1.DataSource = dd;
GridView1.DataBind();
}