2022年自定义控件,c#分页控件可用 .pdf
《2022年自定义控件,c#分页控件可用 .pdf》由会员分享,可在线阅读,更多相关《2022年自定义控件,c#分页控件可用 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、自定义控件, c# 分页控件相信大多数程序员最开始都想写一些自定义的控件,而我们最常用的到就是分页控件,所以我希望在这里将自己的一点心得与大家分享,讲讲分页控件的原理。起始自定义控件最终仍然是一个类,即是object,那我们如果使用它呢,因为微软框架的自定义空间接口是System.Web.UI.WebControls.WebControl,所有的自定义控件都要继承与这个类,所以 我们先声明一个类Page01 ,让这个类继承System.Web.UI.WebControls.WebControl,而由于分页控件需要在点击翻页的按钮时触发数据的回传,所以还必须实现接口IPostBackEventH
2、andler,所以我们新建一个类,代码如下:DefaultProperty(),ToolboxData() public class Page01 : System.Web.UI.WebControls.WebControl,IPostBackEventHandler . 这里我们呆会要写类具体的属性,字段和方法其中最桑面一行DefaultProperty(),ToolboxData()为自定义属性,这里指明了我们在前台调用时的语法格式。一个分页控件不要的属性,每页显示的记录数,总记录数,当前页数,总页数,这里我再加上控件占用的宽度private int record_Count;/总记录数p
3、rivate int page_Count;/ 总页数private int page_Size = 2;/ 每页显示记录数private int page_Current = 1;/ 当前页数private int page_width = 700;/宽度private string page_Index = ; Bindable(true), Category(Appearance), DefaultValue() 最后一句用于制定该空间可以用于绑定等信息。为微软底层提供的框架。申明完字段,我们声明属性为字段赋值和读取指public int Page_Width get return pa
4、ge_width; set page_width = value; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - public int Record_Count get return record_Count; set record_Count = value; public int Page_Count get return page_Count; set page_Count = value; public int Pa
5、ge_Size get return page_Size; set page_Size = value; public int Page_Current get return page_Current; set page_Current = value; public string Page_Index get return page_Index; set page_Index = value; 由于自定义控件继承与webcontrols ,所以我们可以重载Render 方法重新绘制页面的输出,这个 Render 有个类型为HtmlTextWriter 的参数,调用该实例的Write 方法就可
6、像页面输出指定字符串。protected override void Render(HtmlTextWriter writer) writer.Write(/n); writer.Write( 记录数 :); writer.Write(record_Count); writer.Write( 总页数 :); writer.Write(page_Count + ); if (page_Current != 1) writer.Write(); for (int i = 1; i = page_Count; i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
7、- - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - if (i = page_Current) writer.Write(); else writer.Write(); if (page_Current != page_Count) writer.Write(); writer.Write(/n); 其中的逻辑思路笔者可自定义,如当为第一页时不显示上一页,或让第一页的按钮为不可点击状态等等。我们还要定义一个委托和事件,让某些具体的事件发生时触发,这里就是翻页事件/ / 定义委托,实现翻页时触发事件/ / 发送通
8、知的对象 / 包含所有接受者需要的附件信息 public delegate void ItemPageIndexChanged(object sender, PageEventArgs args); / / 定义执行的事件/ public event ItemPageIndexChanged PageChangeIndex; 最后我们就要调用继承于IPostBackEventHandler 这个类的方法RaisePostBackEvent来处理数据回传时我们要做的操作public void RaisePostBackEvent(string eventArgument) 名师资料总结 - -
9、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - try this.Page_Current = Int32.Parse(eventArgument); catch this.page_Current = 1; PageEventArgs e = new PageEventArgs(); e.NewPageIndex = page_Current; PageChangeIndex(this, e); 此时这个 eventArgument 参数就是我们
10、回传的页数。方法里我们将当前页重新赋值,并声明要 改 变 状 态 的PageEventArgs 对 象 实 例 , 将 它 的NewPageIndex 设 置 为 当 前 页 数 ,PageEventArgs类声明如下public class PageEventArgs : EventArgs / / 最新页面/ private int newpageindex; / / 属性设置最新页面的页码值/ public int NewPageIndex get return newpageindex; set newpageindex = value; 即是我们在触发时间时要传递的对象。这样我们就定
11、义完了一个自定义控件,那我们在使用的时候需按照如下格式,在需要用到控件 的 前 台 页 面 最 上 面 声 明 格 式 , 在 需 要 放 置 控 件 的 地 方 调 用 其中 Assembly 为程序集名称,Namespace 为命名空间名称,TagPrefix为用户自己定义的控件前缀,在调用处 即完成了控件的调用,那后台实现名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 翻页事件,this.Page1.PageChange
12、Index += new Page01.ItemPageIndexChanged(Page1_PageChangeIndex); void Page1_PageChangeIndex(object sender, DBUtility.PageEventArgs args) this.Page1.Page_Current = args.NewPageIndex; SetValue(); 这里的 SetValue()就是翻页完成后用户根据需要定义的方法。那完整的代码如下:文件 Page01.cs类using System; using System.Collections.Generic; usi
13、ng System.Linq; using System.Text; using System.ComponentModel; using System.Web.UI; using System.Web; using System.Web.UI.WebControls; namespace DBUtility DefaultProperty(),ToolboxData() public class Page01 : System.Web.UI.WebControls.WebControl,IPostBackEventHandler private int record_Count;/总记录数p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年自定义控件 c#分页控件可用 2022 自定义 控件 c# 分页 可用
限制150内