您可以创建一个自定义方法来呈现自己的分页控件。这是一个例子:
/// <summary> /// Produces html for a pagination control. /// </summary> /// <param name="page">Page number for the current page (1-based index).</param> /// <param name="pageSize">Number or items per page.</param> /// <param name="totalItems">Total number of items across all pages.</param> /// <returns>Html of a pagination control.</returns> public string RenderPaginationControl(int page, int pageSize, int totalItems) { int totalPages = (int)Math.Ceiling((double)totalItems/pageSize); // Create pager. StringBuilder pagerSb = new StringBuilder(); for (int i = 1; i <= totalPages; ++i) { // If it is NOT a link to current page. if (i != page) { pagerSb.Append(string.Format("<a href='/data.aspx?page={0}'>{0}</a>", i)); } // If it is the link to current page. else { pagerSb.Append(string.Format("<span>{0}</span>", i)); } } return pagerSb.ToString(); }如您所见,除了sql之外,您还需要调用
SELECt COUNT(*) FROM Items
并通过该值 TOTALITEMS 在 RenderPaginationControl 。
就与Repeater的绑定而言,这很简单:
this.MyRepeater.DataSource = DAL.GetItems(page, pageSize);this.MyRepeater.DataBind();int totalItems = DAL.GetTotalNumberOfItems();this.PaginationLabel.Text = RenderPaginationControl(page, pageSize, totalItems);



