Asp.net自己怎么做分页控件?
Asp.net自己怎么做分页控件?做一个如下图的我这是用C#代码给数据控件装载数据,.net自带的分页控件,根本用不上,给我提供的数据源是返回总页数,和当前页码,和当前页...
Asp.net自己怎么做分页控件?做一个如下图的我这是用C#代码给数据控件装载数据,.net自带的分页控件,根本用不上,给我提供的数据源是返回总页数,和当前页码,和当前页数据。 第一:不要告诉我.net有分页控件,因为我这是实际需要。第二:不要说百度搜索等之类的话。第三:不是认真回答只是刷分的,就一边去吧! 谢谢!.net 3.5Anysend@vip.qq.com
展开
2个回答
展开全部
实际上你要做的就是个假分页,这个比真分页还好做。
总体思路:
1. 采用asp.net 开发自定义服务器控件. 如果你不会,(当然,你也可以选用web user control,即ascx控件,这个比较简单,但是我强烈推荐自定义服务器控件)
2. 你的控件很简单,使用者只需自行设定页面显示数据的大小(public参数公开),你的控件根据单页显示的多少和总数据量,自动算出页数。(当然,你这里已经说数据库提供了总页数,所以你可以不用考虑这个参数)
3. 用户点击每页的时候,实际上就把点击的数字 作为参数传回你的控件里,比如用户点击“3”页,你把3作为参数传回数据库取得第三页的数据就行了。
4. 加上自己的样式。
总体思路:
1. 采用asp.net 开发自定义服务器控件. 如果你不会,(当然,你也可以选用web user control,即ascx控件,这个比较简单,但是我强烈推荐自定义服务器控件)
2. 你的控件很简单,使用者只需自行设定页面显示数据的大小(public参数公开),你的控件根据单页显示的多少和总数据量,自动算出页数。(当然,你这里已经说数据库提供了总页数,所以你可以不用考虑这个参数)
3. 用户点击每页的时候,实际上就把点击的数字 作为参数传回你的控件里,比如用户点击“3”页,你把3作为参数传回数据库取得第三页的数据就行了。
4. 加上自己的样式。
展开全部
ui层
<div class="pager">
<asp:HyperLink ID="HyperLink1" runat="server">首页</asp:HyperLink>
<asp:HyperLink ID="HyperLink2" runat="server">上一页</asp:HyperLink>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:HyperLink ID="HyperLink3" runat="server">下一页</asp:HyperLink>
<asp:HyperLink ID="HyperLink4" runat="server">末页</asp:HyperLink>
</div>
后台
private void showBranchList()
{
if (Request.QueryString["page"] != null)
{
try
{
page = Convert.ToInt32(Request.QueryString["page"].ToString());
}
catch
{ }
}
int RecordCount = Convert.ToInt32(DBHelper.GetScalar2String("select count(BranchId) from BranchInfo",CommandType.Text, null));
int pageCount = Convert.ToInt32(Math.Ceiling((double)RecordCount / pageSize));
if (page > pageCount)
{
page = pageCount;
}
if (page < 1)
{
page = 1;
}
string sql = "select top " + pageSize + " * from BranchInfo"
+ " where BranchId not in (select top " + (page - 1) * pageSize + "BranchId from BranchInfo)";
DataSet dt = DBHelper.GetDataSet(sql, CommandType.Text, null);
this.OrganizaListRepeater.DataSource = dt.Tables[0];
this.OrganizaListRepeater.DataBind();
this.HyperLink1.NavigateUrl = "OrganizaList.aspx?page=1";
this.HyperLink2.NavigateUrl = "OrganizaList.aspx?page=" + (page - 1).ToString();
this.HyperLink3.NavigateUrl = "OrganizaList.aspx?page=" + (page + 1).ToString();
this.HyperLink4.NavigateUrl = "OrganizaList.aspx?page=" + pageCount;
if (page == 1)
{
this.HyperLink2.Enabled = false;
}
if (page == pageCount)
{
this.HyperLink3.Enabled = false;
}
for (int i = 1; i <= pageCount; i++)
{
if (i == page)
{
this.Label1.Text += " <a class='p1 p2' href = 'OrganizaList.aspx?page='" + i.ToString() + "'>" + i.ToString() + "</a> ";
}
else
{
this.Label1.Text += " <a class='p1' href='OrganizaList.aspx?page=" + i.ToString() + "'>" + i.ToString() + "</a> ";
}
}
}
应该是这样的,有一个ASPNet Page很好用啊
<div class="pager">
<asp:HyperLink ID="HyperLink1" runat="server">首页</asp:HyperLink>
<asp:HyperLink ID="HyperLink2" runat="server">上一页</asp:HyperLink>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:HyperLink ID="HyperLink3" runat="server">下一页</asp:HyperLink>
<asp:HyperLink ID="HyperLink4" runat="server">末页</asp:HyperLink>
</div>
后台
private void showBranchList()
{
if (Request.QueryString["page"] != null)
{
try
{
page = Convert.ToInt32(Request.QueryString["page"].ToString());
}
catch
{ }
}
int RecordCount = Convert.ToInt32(DBHelper.GetScalar2String("select count(BranchId) from BranchInfo",CommandType.Text, null));
int pageCount = Convert.ToInt32(Math.Ceiling((double)RecordCount / pageSize));
if (page > pageCount)
{
page = pageCount;
}
if (page < 1)
{
page = 1;
}
string sql = "select top " + pageSize + " * from BranchInfo"
+ " where BranchId not in (select top " + (page - 1) * pageSize + "BranchId from BranchInfo)";
DataSet dt = DBHelper.GetDataSet(sql, CommandType.Text, null);
this.OrganizaListRepeater.DataSource = dt.Tables[0];
this.OrganizaListRepeater.DataBind();
this.HyperLink1.NavigateUrl = "OrganizaList.aspx?page=1";
this.HyperLink2.NavigateUrl = "OrganizaList.aspx?page=" + (page - 1).ToString();
this.HyperLink3.NavigateUrl = "OrganizaList.aspx?page=" + (page + 1).ToString();
this.HyperLink4.NavigateUrl = "OrganizaList.aspx?page=" + pageCount;
if (page == 1)
{
this.HyperLink2.Enabled = false;
}
if (page == pageCount)
{
this.HyperLink3.Enabled = false;
}
for (int i = 1; i <= pageCount; i++)
{
if (i == page)
{
this.Label1.Text += " <a class='p1 p2' href = 'OrganizaList.aspx?page='" + i.ToString() + "'>" + i.ToString() + "</a> ";
}
else
{
this.Label1.Text += " <a class='p1' href='OrganizaList.aspx?page=" + i.ToString() + "'>" + i.ToString() + "</a> ";
}
}
}
应该是这样的,有一个ASPNet Page很好用啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询