我用的是datalist做了个显示数据的模板,有点像百度搜索网页后那种
想问下像这样的分页控件如何做呢?
我只能实现点前一页和后一页
不能想这样是很多个按钮
能给代码我给200分,(我只有200分)
------解决方案--------------------------------------------------------
- C# code
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindData(); } } void BindData() { string BD_ID = "0"; if (Request.QueryString["Sort"] != null) sort = Request.QueryString["Sort"].ToString(); if (Request.QueryString["BrandID"] != null) BD_ID = Request.QueryString["BrandID"].ToString(); DataSet Ds = ProductProvider.Instance.GetViewMobileBySortExcuteProcdeure(sort,BD_ID); PagedDataSource objPds = new PagedDataSource(); objPds.DataSource =Ds.Tables[0].DefaultView; objPds.AllowPaging = true; objPds.PageSize = Convert.ToInt32(ConfigurationManager.AppSettings["z_pagesize"]); int CurPage; if (Request.QueryString["Page"] != null) CurPage = Convert.ToInt32(Request.QueryString["Page"]); else CurPage =0; objPds.CurrentPageIndex = CurPage; ddl_new_price1.DataSource = objPds; ddl_new_price1.DataBind(); int PageCount = objPds.PageCount; if (PageCount > 0) { WritePage(CurPage,PageCount); li_PageCount.Text = " 第<b class='hong12'>" + (CurPage+1).ToString() + "</b> / <span class='hei12'>" + PageCount.ToString() + "</span>页 每页<b class='hei12'>" + objPds.PageSize.ToString() + "</b>款 共<b class='hei12'>" + Ds.Tables[0].Rows.Count.ToString() + "</b> 款"; } else { lb_noFound.Text = "没有找到相关产品!"; } } void WritePage(int PageIndex, int PageCount) { StringBuilder str = new StringBuilder(); string url = Request.RawUrl; if (url.Length > 0) { if (url.IndexOf("_") != -1) { url = url.Substring(url.IndexOf("_")).Replace("#", "%23"); } } li_page.Text = string.Empty; int cnt = 1; if (PageCount > 0) { if (PageIndex != 0) { str.AppendLine("<a class='nor' href='0" + url + "'>首页</a>"); } if (PageIndex < 5) { if (PageIndex > 0) { str.AppendLine("<a class='nor' href='" + (PageIndex - 1) + url + "'>上一页</a>"); } else { str.AppendLine("<a class='nor' disabled>上一页</a>"); } for (int i = 0; i < PageCount; i++) { if (cnt == 6) break; if (i == PageIndex) { str.AppendLine("<a class='act'>" + (i + 1).ToString() + "</a>"); } else { str.AppendLine("<a class='nor' href='" + i + url + "'>" + (i + 1) + "</a>"); } cnt++; } if (PageCount - cnt > 0) { str.AppendLine("<a class='point'>...</a>"); } if (PageIndex < PageCount - 1) { str.AppendLine("<a class='nor' href='" + (PageIndex + 1) + url + "'>下一页</a>"); } else { str.AppendLine("<a class='nor' disabled>下一页</a>"); } } else { str.AppendLine("<a class='nor' href='" + (PageIndex - 1) + url + "'>上一页</a>"); int startIndex = (int)(PageIndex / 5) * 5; if (startIndex != 0) { str.AppendLine("<a class='point'>...</a>"); } for (int i = startIndex; i < PageCount; i++) { if (cnt == 6) break; if (i == PageIndex) { str.AppendLine("<a class='act'>" + (i + 1).ToString() + "</a>"); } else { str.AppendLine("<a class='nor' href='" + i + url + "'>" + (i + 1) + "</a>"); } cnt++; } if (startIndex + 5 < PageCount) { str.AppendLine("<a class='point'>...</a>"); } if (PageIndex < PageCount - 1) { str.AppendLine("<a class='nor' href='" + (PageIndex + 1) + url + "'>下一页</a>"); } else { str.AppendLine("<a class='nor' disabled>下一页</a>"); } } } if (PageIndex != PageCount - 1) { str.AppendLine("<a class='nor' href='" + (PageCount - 1) + url + "'>末页</a>"); } li_page.Text = str.ToString(); }