.net 开发的网站,怎么实现 123456789 这种分页效果,
就是类似于淘宝索商品页的分页效果啦要那种 12345678... 那中效果哦! --------------------编程问答-------------------- asp.net有自带的分页控件 --------------------编程问答-------------------- http://www.webdiyer.com/Controls/AspNetPager --------------------编程问答--------------------
DataList 和 Gridview 都带有这样的分页效果 不必纠结 控件先看完在提问 --------------------编程问答-------------------- 演示和控件下载
你能把你的结贴率 提高点吗
--------------------编程问答-------------------- 用aspnetPage 控件吧 能满足你的需求 还比较简单 --------------------编程问答-------------------- 分页控件的效果,aspnetpaper分页控件也挺好用 --------------------编程问答-------------------- 控件的分页一定要小心了,性能存在很大问题,这个也必然,
最好自己动手写,sql存储过程分页实现
大数据量,reapter+sql存储过程分页 --------------------编程问答-------------------- 分页存储过程加aspnetpaper分页控件 --------------------编程问答-------------------- aspnetpage --------------------编程问答-------------------- GridView和datalist 自带这个功能 --------------------编程问答-------------------- 可以自己写个分页控件,方便自由控制显示格式。 --------------------编程问答-------------------- 后台组装分页字符串,页面用literal接收。 --------------------编程问答-------------------- 共1页 首页 上一页 1 2 3 4 5 6 7 8 9 10 ....下一页 末页
调用页面(Aspx):
在要显示分页导航的地方加个DIV标签:<div id="PageInfo" runat="server" class="Blue_Font12"></div>
调用页的代码(CS):
DataSet ds = db.getDs(sql);
this.PageInfo.InnerHtml = PageNums.GetPageNum(ds,DataList1,12); //传入DataSet,DataList名称和分页大小
PageNums实现分页类(PageNums.cs):
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
/// <summary>
///PageNums 的摘要说明
/// </summary>
public class PageNums
{
/// </summary>
/// <param name="ds">DataSet实例</param>
/// <param name="datalistname">DataList名称</param>
/// <param name="pagesize">分页大小</param>
public static string GetPageNum(DataSet ds, DataList datalistname, int pagesize)
{
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
int total = ds.Tables[0].Rows.Count;
objPds.PageSize = pagesize;
int page;
if (HttpContext.Current.Request.QueryString["page"] != null)
page = Convert.ToInt32(HttpContext.Current.Request.QueryString["page"]);
else
page = 1;
objPds.CurrentPageIndex = page - 1;
datalistname.DataSource = objPds;
datalistname.DataBind();
int allpage = 0;
int next = 0;
int pre = 0;
int startcount = 0;
int endcount = 0;
string pagestr = "";
if (page < 1) { page = 1; }
//计算总页数
if (pagesize != 0)
{
allpage = (total / pagesize);
allpage = ((total % pagesize) != 0 ? allpage + 1 : allpage);
allpage = (allpage == 0 ? 1 : allpage);
}
next = page + 1;
pre = page - 1;
startcount = (page + 5) > allpage ? allpage - 9 : page - 4;//中间页起始序号
//中间页终止序号
endcount = page < 5 ? 10 : page + 5;
if (startcount < 1) { startcount = 1; } //为了避免输出的时候产生负数,设置如果小于1就从序号1开始
if (allpage < endcount) { endcount = allpage; } //页码+5的可能性就会产生最终输出序号大于总页码,那么就要将其控制在页码数之内
pagestr = "共" + allpage + "页 ";
pagestr += page > 1 ? "<a href="" + HttpContext.Current.Request.CurrentExecutionFilePath + "?page=1">首页</a> <a href="" + HttpContext.Current.Request.CurrentExecutionFilePath + "?page=" + pre + "">上一页</a>" : "首页上一页";
//中间页处理,这个增加时间复杂度,减小空间复杂度
for (int i = startcount; i <= endcount; i++)
{
pagestr += page == i ? " <font color="#ff0000">" + i + "</font>" : " <a href="" + HttpContext.Current.Request.CurrentExecutionFilePath + "?page=" + i + "">" + i + "</a>";
}
pagestr += page != allpage ? " <a href="" + HttpContext.Current.Request.CurrentExecutionFilePath + "?page=" + next + "">下一页</a> <a href="" + HttpContext.Current.Request.CurrentExecutionFilePath + "?page=" + allpage + "">末页</a>" : " 下一页末页";
return pagestr;
}
} --------------------编程问答--------------------
--------------------编程问答-------------------- 这个 子夜博客里有源码 并且带效果图 --------------------编程问答-------------------- 可以用AspNetPager 这个控件 简单易用 也可以自己写分页方法, URL 传值这样的 --------------------编程问答-------------------- Mark --------------------编程问答-------------------- 类似GOOGLE的
/// <summary>
/// 生成通用分页
/// </summary>
/// <param name="pagetotal">总数据数</param>
/// <param name="pageno">当前页</param>
/// <param name="pagesize">每页显示条数</param>
/// <param name="_strUrl">分页路径</param>
public string BuilderNewsNextPage(int pagetotal, int pageno, int pagesize, string _strUrl)
{
string _strPageCodeHTML = "";
int _intTotalPage, _intCurrPage;
_intTotalPage = pagetotal;//总页数
_intCurrPage = pageno;//当前页
if (_intCurrPage < 1)
{
_intCurrPage = 1;
}
if (_intCurrPage > _intTotalPage)
{
_intCurrPage = _intTotalPage;
}
if (_intTotalPage > 1)
{//总页数大于1时,才显示翻页
int totalPage = _intTotalPage;
if (_intCurrPage != 1)
{
_strPageCodeHTML = _strPageCodeHTML + "<a href=\"" + String.Format(_strUrl, 1) + "\">首页</a> ";
_strPageCodeHTML = _strPageCodeHTML + "<a href=\"" + String.Format(_strUrl,(_intCurrPage - 1)) + "\">上一页</a> ";
}
else
{
_strPageCodeHTML = _strPageCodeHTML + "<a class=\"disable\">首页</a> ";
_strPageCodeHTML = _strPageCodeHTML + "<a class=\"disable\">上一页</a> ";
}
//计算第N页的前后N页显示
int showlength, Before, After, Variance;
showlength = 10; //设置每页显示showlength个翻页标签10
Variance = 1; //差额默认为0(没有差额)
Before = _intCurrPage - (showlength - 1) / 2; //为当前页显示平衡(左右两边显示一样多的链接),偶数转为奇数
if (Before < 1)
{//如果超出最小页,则算出“差额”(用来补给最后页),“前页”置为“第一页”
Variance = 1 - Before;
Before = 1;
}
After = _intCurrPage + (showlength - 1) / 2 + Variance; //计算最“后页”(需要加上差额)
if (After > _intTotalPage)
{//如果超出最大页码,则“后页”置为“最大页”
if (Before > 1)
{//如果“前页”还有向前移动的空间
Variance = Before - 1; //计算“前页”可以移动的差额
if (Variance < (After - _intTotalPage))
{//如果差额比“后页”与“最大页”小,则直接置为“第一页”
Before = 1;
}
else
{//否则,“前页”再向前移动“差额”页即可
Before = Before - (After - _intTotalPage);
}
}
After = _intTotalPage;
}
//计算第N页的前后N页显示
for (int i = Before; i <= After; i++)
{//循环列出下拉框数值
if (_intCurrPage == i)
{
if(i==1)
_strPageCodeHTML = _strPageCodeHTML + "<a class=\"selected\" href=\"" + String.Format(_strUrl,i) + "\">" + i + "</a> ";
else
_strPageCodeHTML = _strPageCodeHTML + "<a class=\"selected\" href=\"" + String.Format(_strUrl,_intCurrPage) + "\">" + i + "</a> ";
}
else
{
_strPageCodeHTML = _strPageCodeHTML + "<a href=\"" + String.Format(_strUrl,i) + "\">" + i + "</a> ";
}
}
if (After < totalPage)
{
_strPageCodeHTML = _strPageCodeHTML + "<font color='#0066CC'>...</font>";
}
if (_intCurrPage != totalPage)
{
_strPageCodeHTML = _strPageCodeHTML + " <a href=\"" + String.Format(_strUrl,(_intCurrPage + 1)) + "\">下一页</a>";
_strPageCodeHTML = _strPageCodeHTML + " <a href=\"" + String.Format(_strUrl, _intTotalPage) + "\">末页</a>";
}
else
{
_strPageCodeHTML = _strPageCodeHTML + " <a class=\"disable\">下一页</a>";
_strPageCodeHTML = _strPageCodeHTML + " <a class=\"disable\">末页</a>";
}
}
return _strPageCodeHTML;
}
补充:.NET技术 , ASP.NET