ASP.NET自定义控件 第十天 实现分页功能的DataList
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-05-20
创建事件和辅助方法:
public event EventHandler<DataListPageEventArgs> PageIndexChanging; protected virtual void OnPageIndexChanging(object sender, DataListPageEventArgs e) { if (PageIndexChanging != null) { PageIndexChanging(sender, e); } } 3.6 编写RenderContent方法,该方法是实现了分页的核心操作,通过实例化 DataListPager类的实例,将触发回发操作的链接加入到当前DataList中: protected override void RenderContents(HtmlTextWriter writer) { this.RenderBeginTag(writer); if (EnablePaging) { Table table = new Table(); TableRow row = new TableRow(); table.Rows.Add(row); TableCell cell = new TableCell(); row.RenderBeginTag(writer); cell.RenderBeginTag(writer); base.RenderContents(writer); cell.RenderEndTag(writer); row.RenderEndTag(writer); TableRow rowpager = new TableRow(); DataListPager pager = new DataListPager(PagerSettings, PageIndex, RecordCount, PageSize, this); rowpager.Cells.Add(pager); rowpager.RenderBeginTag(writer); pager.RenderControl(writer); rowpager.RenderEndTag(writer); } else { base.RenderContents(writer); } this.RenderEndTag(writer); } 3.7 编写IPostEventHandler接口中RaisePostBackEvent方法的实现,判断当 前事件参数并触发换页事件: public void RaisePostBackEvent(string eventArgument) { string[] args = eventArgument.Split(Constant.ARGUMENT_SPLITTER); if (args == null || args.Length < 1) return; string name = args[0]; if (name == Constant.PAGE_ARGUMENT) { int index = 0; string argvalue = args[1]; bool isInt = int.TryParse(argvalue, out index); if (isInt) { DataListPageEventArgs arg = new DataListPageEventArgs (); arg.NewPageIndex = index; OnPageIndexChanging(this, arg); } } } 3.8 重写SaveViewState和LoadViewState方法定义保存和读取视图状态方法: protected override object SaveViewState() { object o = base.SaveViewState(); object osetting = ((IStateManager)PagerSettings).SaveViewState (); Pair p = new Pair(o, osetting); return p; } protected override void LoadViewState(object savedState) { if (savedState != null) { Pair p = (Pair)savedState; base.LoadViewState(p.First); ((IStateManager)PagerSettings).LoadViewState(p.Second); } else { base.LoadViewState(null); } } 3.9 在网站中创建测试页,声明并定义自定义DataList: <cc:DataList ID="dalData" runat="server" EnablePaging="true" PageSize="10" OnPageIndexChanging="dalData_PageIndexChanging" PagerSettings-FirstPageText="????"> <ItemTempl |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于ASP.NET自定义控件 第十天 实现分页功能的DataList的所有评论