asp.net – DataList中的分页无法正常工作
发布时间:2020-12-16 03:16:59 所属栏目:asp.Net 来源:网络整理
导读:我的页面上有DataList,用于显示来自数据库的记录.我已经按照 this教程实现了对DataList的分页. 它在第一页上显示5条记录,但在下一页上,Datalist加载为空.我可以在单击“下一个”和“上一个”按钮上看到当前页面更改的值. 以下是我的aspx页面代码: asp:DataL
我的页面上有DataList,用于显示来自数据库的记录.我已经按照
this教程实现了对DataList的分页.
它在第一页上显示5条记录,但在下一页上,Datalist加载为空.我可以在单击“下一个”和“上一个”按钮上看到当前页面更改的值. 以下是我的aspx页面代码: <asp:DataList ID="DataList1" runat="server"> <HeaderTemplate> <table class="TicketTableInner"> <tr> <td class="ticketlistheaderrow" align="left" valign="middle" width="8%">Ticket ID</td> <td class="ticketlistheaderrow" align="left" valign="middle" width="21%">Category</td> <td class="ticketlistheaderrow" align="left" valign="middle" width="41%">Problem</td> <td class="ticketlistheaderrow" align="left" valign="middle" width="15%">Create Date</td> <td class="ticketlistheaderrow" align="left" valign="middle" width="15%">Reply Date</td> </tr> </HeaderTemplate> <ItemTemplate> <tr class="TicketRow<%#Eval("IsReadString")%>" onclick="UpdateTicketID('<%#Eval("TicketIDD")%>')"> <td class="ticketlistRowItem<%#Eval("IsReadString")%>"><%#Eval("TicketIDFROMDB")%></td> <td class="ticketlistRowItem<%#Eval("IsReadString")%>"><%#TrimLenght(Eval("Category"),30)%></td> <td class="ticketlistRowItem<%#Eval("IsReadString")%>"><%#TrimLenght(Eval("Problem"),70)%></td> <td class="ticketlistRowItem<%#Eval("IsReadString")%>"><%#Eval("CreatedDate")%></td> <td class="ticketlistRowItem<%#Eval("IsReadString")%>"><%# ProcessMyDataItemForNA(Eval("RepliedDate"))%></td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:DataList> <table class="style1"> <tr> <td class="style2"> <asp:LinkButton ID="LinkButton2" runat="server" OnClick="LinkButton2_Click">Next</asp:LinkButton> </td> <td> <asp:LinkButton ID="LinkButton3" runat="server" OnClick="LinkButton3_Click">Previous</asp:LinkButton> </td> </tr> </table> 以下是代码背后的代码: Imports System.Data Imports System.Configuration Imports System.Data.SqlClient Partial Class supportTickets_myTickets Inherits System.Web.UI.Page Public TicketStatus As String = "" Public TicketID As String = "" Dim pg As Integer = 0 Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then CurrentPageIndex = 0 showData() Else End If End Sub Private Function GetDataTable() As DataTable '//This function returns record from database in the form of dataTable End Function Private Sub showData() Dim pgd As New PagedDataSource() Dim ds As DataSet = GetDataSet() pgd.DataSource = ds.Tables(0).DefaultView pgd.AllowPaging = True pgd.PageSize = 5 pgd.CurrentPageIndex = CurrentPageIndex LinkButton2.Enabled = Not (pgd.IsLastPage) LinkButton3.Enabled = Not (pgd.IsFirstPage) DataList1.DataSource = pgd DataList1.DataBind() End Sub Public Property CurrentPageIndex() As Integer Get If ViewState("pg") Is Nothing Then Return 0 Else Return Convert.ToInt16(ViewState("pg")) End If End Get Set(value As Integer) ViewState("pg") = value End Set End Property Protected Sub LinkButton2_Click(sender As Object,e As EventArgs) CurrentPageIndex += 1 showData() End Sub Protected Sub LinkButton3_Click(sender As Object,e As EventArgs) CurrentPageIndex -= 1 showData() End Sub End Class 解决方法
通过分页dataSource绑定DataList
public int PageNumber { get { if (ViewState["PageNumber"] != null) return Convert.ToInt32(ViewState["PageNumber"]); else return 0; } set { ViewState["PageNumber"] = value; } } private void BindListing() { DataTable dt = Method which return datatable; if (dt.Rows.Count <= 0) { lnknext.Visible = false; lnkPrevious.Visible = false; ScriptManager.RegisterStartupScript(this,this.GetType(),"Error","alert('No records found!!!.');",true); return; } PagedDataSource pgitems = new PagedDataSource(); DataView dv = new DataView(dt); pgitems.DataSource = dv; pgitems.AllowPaging = true; pgitems.PageSize = 10; pgitems.CurrentPageIndex = PageNumber; DataList1.DataSource = pgitems; DataList1.DataBind(); } protected void lnkPrevious_Click(object sender,EventArgs e) { PageNumber -= 1; BindListing(); } protected void lnknext_Click(object sender,EventArgs e) { PageNumber += 1; BindListing(); } protected void Page_Load(object sender,EventArgs e) { if (!IsPostBack) { BindListing(); } } 我希望上面的例子会有所帮助.. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – Javascript日期本地化
- 为熟悉ASP.NET Web表单开发的人建议MVC3的周末学习轨道
- asp.net-mvc-3 – LabelFor不在循环中工作(for / foreach /
- asp.net-mvc – 使用RowAction更改Kendo MVC网格中的行颜色
- asp.net – 在cassandra中存储少量数据
- asp.net-identity – asp.net标识有什么用.GenerateUserTok
- asp.net core 使用中间件拦截请求和返回数据,并对数据进行
- asp.net-mvc – 将参数传递给Azure Active Directory身份验
- asp.net – 在localhost上将网站添加到IIS
- ASP.NET MVC – 如何处理发送电子邮件?
推荐文章
站长推荐
- 如何将旧版ASP应用程序转换为ASP.NET?
- asp.net – 如何检测请求是否是Global.asax中的回
- asp.net-mvc – 在自定义控制器工厂中进行通用授
- asp.net-mvc – 使用Sharp Architecture注册自定
- asp.net-mvc-3 – 在ASP.NET MVC3 Intranet应用程
- asp.net – ScriptManager必须出现在任何需要它的
- asp.net mvc c#tooltip
- 使用ASP.NET Identity实现基于声明的授权,高级篇
- 70-515 MCTS培训套件是否在ASP.NET健康监控问题上
- asp.net-mvc – 我应该在MVC应用程序中创建我的E
热点阅读