这个问题在这里已有答案:
如何使用存储过程实现Gridview自定义分页? 3个答案我正在尝试使用自定义分页创建GridView。 我有非常大的数据,所以为了提高十速,我正在尝试自定义分页。
我编写了一个SQL Server存储过程,它接受输入参数SelectedPageNumber , SelectedPageSize并为DataTable填充属于特定页面的结果行。 存储过程还具有MaxPageNumber作为输出参数。
我能够将页面的数据绑定到GridView,但我无法弄清楚如何显示最多为MaxPageNumber值的MaxPageNumber作为存储过程。
我正在使用.Net Framework 4.0
它可能是重复但我找不到解决方案。
你能帮我吗 ???
This question already has an answer here:
How to implement Gridview Custom paging using Stored Procedure? 3 answersI'm trying to create a GridView with custom paging. I have very large data so In order to Increase ten Speed I'm trying to do Custom Paging.
I wrote a SQL Server stored procedure that takes input parameters SelectedPageNumber, SelectedPageSize and gives the DataTable filled with the resulting rows belonging to the particular page. The stored procedure also has a MaxPageNumber as output parameter.
I'm able to bind the data of the page to the GridView but I'm not able to figure out how to show the page numbers up to the MaxPageNumber value taken as a stored procedure.
I'm using .Net Framework 4.0
It might be a duplicate but I could not find the solution.
Can you help me out ???
最满意答案
您可以使用Repeater控件创建一个寻呼机,就像这样
// These are your outputs from that SP int MaxPageNumber = 10, CurrentPageNumber = 4; void BindPager() { DataTable PagerData = new DataTable(); PagerData.Columns.Add("pageNo"); for (int i = 1; i < MaxPageNumber; i++) PagerData.Rows.Add(i); pager.DataSource = PagerData; pager.DataBind(); } <asp:Repeater runat="server" ID="pager" onitemcommand="pager_ItemCommand" onitemdatabound="pager_ItemDataBound"> <ItemTemplate> <asp:Button runat="server" ID="pageNo" Text='<%# Eval("pageNo") %>' CommandArgument='<%# Eval("pageNo") %>' CommandName="DoPaging" /> </ItemTemplate> </asp:Repeater> protected void pager_ItemDataBound(object sender, RepeaterItemEventArgs e) { // Code to highlight current page if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { Button pageNo = e.Item.FindControl("pageNo") as Button; if (pageNo == null) return; if (pageNo.Text == CurrentPageNumber.ToString()) pageNo.BackColor = Color.Blue; else pageNo.BackColor = Color.Gray; } } protected void pager_ItemCommand(object source, RepeaterCommandEventArgs e) { // perform your paging here according to page number }You could create a Pager using Repeater control, Something like this
// These are your outputs from that SP int MaxPageNumber = 10, CurrentPageNumber = 4; void BindPager() { DataTable PagerData = new DataTable(); PagerData.Columns.Add("pageNo"); for (int i = 1; i < MaxPageNumber; i++) PagerData.Rows.Add(i); pager.DataSource = PagerData; pager.DataBind(); } <asp:Repeater runat="server" ID="pager" onitemcommand="pager_ItemCommand" onitemdatabound="pager_ItemDataBound"> <ItemTemplate> <asp:Button runat="server" ID="pageNo" Text='<%# Eval("pageNo") %>' CommandArgument='<%# Eval("pageNo") %>' CommandName="DoPaging" /> </ItemTemplate> </asp:Repeater> protected void pager_ItemDataBound(object sender, RepeaterItemEventArgs e) { // Code to highlight current page if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { Button pageNo = e.Item.FindControl("pageNo") as Button; if (pageNo == null) return; if (pageNo.Text == CurrentPageNumber.ToString()) pageNo.BackColor = Color.Blue; else pageNo.BackColor = Color.Gray; } } protected void pager_ItemCommand(object source, RepeaterCommandEventArgs e) { // perform your paging here according to page number }更多推荐
发布评论