ASP.NET自定义控件 第十天 实现分页功能的DataList
ate>
<table class="data" cellpadding="0" cellspacing="1"
border="0">
<tr>
<td><asp:Label ID="lblId" runat="server"
Text=''<%#Eval("Id") %>''></asp:Label></td>
<td><asp:Label ID="lblName" runat="server"
Text=''<%#Eval("Name") %>''></asp:Label></td>
</tr>
</table>
</ItemTemplate>
</cc:DataList>
3.10 在后置代码中编写BindData方法加载数据,并且在页面不是回发时调用 此方法显示数据: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) this.BindData(); } private void BindData() { DataTable table = new DataTable(); DataColumn col = new DataColumn("Id"); table.Columns.Add(col); col = new DataColumn("Name"); table.Columns.Add(col); for (int i = dalData.PageIndex * dalData.PageSize; i < dalData.PageIndex * dalData.PageSize+dalData.PageSize; i++) { DataRow row = table.NewRow(); row[0] = i; row[1] = "人员 " + i; table.Rows.Add(row); } dalData.DataSource = table; dalData.RecordCount = 30; dalData.DataBind(); } 3.11 编写DataList的切换页事件,将新的页码索引赋值给DataList并执行数 据绑定: protected void dalData_PageIndexChanging(object sender, DataListPageEventArgs e) { dalData.PageIndex = e.NewPageIndex; this.BindData(); } 3.12 在浏览器中预览效果: 4. 总结 在本次任务中,通过为LinkButton加入了JavaScript脚本使得在客户端点击时 可以引起回发操作,这是通过ClientScriptManager类的 GetPostBackClientHyperlink方法实现的。引起提交后,为了能够在服务器端处 理回发事件,在自定义DataList控件中实现了IPostBackEventHandler接口并在实 现方法中调用了自定义页切换事件,使开发人员能够根据新页码进行数据绑定。 可以看到,现在DataList和GridView都已经实现分页了,但是从某种意义上来说 ,这个解决方案还不够优雅(经常被Java程序员拿来说事的一个词-_-!!),您可 以自行加以改良。 本系列文章配套源码 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |