使用存储过程在ASP Gridview中自定义分页[复制](Custom paging in ASP Gridview using stored procedures [duplicate])

编程入门 行业动态 更新时间:2024-10-21 06:37:59
使用存储过程在ASP Gridview中自定义分页[复制](Custom paging in ASP Gridview using stored procedures [duplicate])

这个问题在这里已有答案:

如何使用存储过程实现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 answers

I'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 }

更多推荐

本文发布于:2023-08-06 15:08:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1451218.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:分页   自定义   存储过程   Gridview   ASP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!