我爱Aspx >> Asp.Net >> 创建用于ASP.NET的分页控件对于 SqlPager 控件来说,成为命名容器非常重要。事实上,SqlPager 包含一些 LinkButton 控件,并且需要获取并处理其单击事件以便导航页面。正如 ASP.NET 页面中的任何其他控件一样,LinkButton 也被赋予了一个 ID,用于标识处理返回事件的控件。
处理返回事件时,ASP.NET 运行时试图查找事件的目标 ID 与主窗体的任何直接子控件之间是否存在匹配关系。LinkButton 是分页程序的子控件,因此不能运行其服务器端的代码。这是否意味着只有窗体的直接子控件才能启动并处理服务器事件?当然不是,只要您使用命名容器。
通过使 SqlPager 控件实现 INamingContainer 接口,可以将嵌入式链接按钮的实际 ID 从“First”更改为“SqlPager1:First”。当用户单击以查看新页面时,返回事件将 SqlPager1:First 作为目标控件。实际上,运行时用来识别目标控件的算法比上面介绍的要复杂一些。运行时将事件目标控件的名称看作是用冒号分隔开的字符串。实际上,这种匹配是在窗体的子控件和用冒号分隔开的字符串(如 SqlPager1:First)的第一个标记之间进行的。由于分页程序是窗体的子控件,因此匹配时会成功,分页程序获取单击事件。如果您认为这种解释不够充分或者令人费解,只要下载 SqlPager 控件的源代码,删除 INamingContainer 标记接口并进行重新编译即可。您将看到分页程序能够返回,但不能内部处理单击事件。
INamingContainer 接口是一个不具备方法的标记接口,其实现只需在类声明中指定名称即可,无需进行任何其他操作。
复合控件的另一个重要方面是,它们通常不需要自定义逻辑来进行显示。复合控件的显示遵循其组成控件的显示。生成复合控件时,通常无需覆盖 Render 方法。
控件的 SqlPager 树由一个包含两个单元格的单行表格组成。该表格继承了分页程序的大部分可视设置,如前景颜色和背景颜色、边框、字体信息和宽度等。第一个单元格包含导航条,其结构取决于 PagerStyle 属性的值。如果分页程序的样式为 NextPrev,则导航条将由四个 VCR 式的按钮组成。否则,它将由一个下拉列表组成。
Ҷƪл˵?
打造通用ASP.NET数据分页控件[05-20]
利用ASP.NET访问共享网络资源[05-20]
了解ASP.NET页面对象模型[05-20]
如何用在ASP.NET中写入事件日志[05-20]
ASP.NET设计控件净化网站语言[05-20]
Asp.Net细节性问题精萃[05-20]
漫谈ASP.NET 页面对象模型[05-20]
ASP.NET+XML打造网络硬盘[05-20]
ASP.NET程序中常用的三十三种代码[05-20]
asp.net 1.1中url重写的问题[05-20]
打造通用ASP.NET数据分页控件[05-20]
利用ASP.NET访问共享网络资源[05-20]
了解ASP.NET页面对象模型[05-20]
如何用在ASP.NET中写入事件日志[05-20]
ASP.NET设计控件净化网站语言[05-20]
Asp.Net细节性问题精萃[05-20]
漫谈ASP.NET 页面对象模型[05-20]
ASP.NET+XML打造网络硬盘[05-20]
ASP.NET程序中常用的三十三种代码[05-20]
Visual Studio 2005 中的新的 Da..[05-20]