快速业务通道

Asp.net 3.5控件和组件开发技术系列—从零开始开发服务器控件(下)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20
/ <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。示例如下:

/// <summary>
/// 获得本书更多内容,请看:
/// http://blog.csdn.net/ChengKing/archive/2008/08/18/2792440.aspx
/// </summary>

//是否支持脚本 
if (Page.Request.Browser.EcmaScriptVersion.Major > 0 &&  Page.Request.Browser. W3CDomVersion.Major > 0)
{ }

//判断浏览器类型, 版本等 
this.Page.Request.Browser.Type;
this.Page.Request.Browser.Version;
this.Page.Request.Browser.MajorVersion;
this.Page.Request.Browser.ActiveXControls.ToString();
this.Page.Request.Browser.BackgroundSounds.ToString();
this.Page.Request.Browser.Beta.ToString();
this.Page.Request.Browser.Browser;
this.Page.Request.Browser.VBScript.ToString();
this.Page.Request.Browser.Version;
this.Page.Request.Browser.Win16.ToString();
this.Page.Browser.Win32.ToString();
this.Page.Request.Browser.JavaApplets.ToString();
this.Page.Request.Browser.JavaScript.ToString();

以上仅列出部分代码,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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号