Asp.net 3.5控件和组件开发技术系列—从零开始开发服务器控件(下)
/ <summary> /// 获得本书更多内容,请看: /// http://blog.csdn.net/ChengKing/archive/2008/08/18/2792440.aspx /// </summary> [Bindable(false),Browsable(false),EditorBrowsable(EditorBrowsableState.Never)] public override Unit Height { get { return new Unit(); } } Bindable(false)属性指定此属性不需要绑定;Browsable(false)指定此属性不在属性窗口 显示;EditorBrowsable(EditorBrowsableState.Never)指定此属性不在编辑器中看到,即在后 台*.cs文件中不会在智能提示中出现此属性。 比如在Button控件中有Height属性,并且MyButton控件继承于Button,如果在MyButton中用以 上方式屏蔽了Height属性,则在MyButton控件中就没有Height功能;但不影响单独使用Button时的 Height功能。 3.8.3 Page.Request.Browser属性 Browser属性主要用来检查当前浏览器性能,这里需要注意的是在控件中通过 this.Page 取得 控件所在的页面对象Page。示例如下:
以上仅列出部分代码,Browser类中还有更多属性。通过Browser对象我们可以判断浏览器是IE 还是其他浏览器,或者当前浏览器的版本等,进而可以完成某种浏览器下支持的特定功能。 还有一点,要注意上面用到this.Page.Request.Browser的地方不要写在: if(this.DesignMode) { } 语句块中,因为这些环境变量取自客户端,只有在运行模式(非设计模式)下才能够取得。简 单地讲,凡是取自Request的属性都是获取自远程客户端的信息,在控件中一般都只能在运行模式 下执行。 3.8.4 设置控件ID规范 在 3.6节中已经讲过了,一般一个控件主要使用以下三个属性作为其唯一标志:ID,UniqueID ,ClientID。其中ID表示我们给它命名的 ID;UniqueID表示控件的服务端ID,在服务端标志控件 的名称;ClientID表示控件的客户端ID,从使用角度讲,如果继承了 INamingContainer接口,当 我们为子控件设定一个ID后,它的UniqueID和ClientID会自动加上父控件 this.UniqueID和分隔符 作为前缀;一般来说,在服务端分隔符默认使用 "contentquot; 进行分隔,但是到了客户端会自动将这些"contentquot; 转换为下画线 "_" ,即客户端ID和服务端ID名称是一样的,只是分隔符不同。 从上面这段可以知道在服务端控件映射到客户端后,ID串都会把"contentquot;变为以"_"为分隔符组成的 ID名称字符串。另外,一般在客户端控件中还有个Name的属性,它仍然保留服务端的ID。看一下这 个例子: <input id="Panel_Button1" name="Panel&Button1" /> 虽然ID属性生成到客户 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |