|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你觉得学习.NET怎么样,我懂的少,问的可能很幼稚,见笑了啊:)在Web天下,ID这个属性真是无所不在。关于这个我们最经常使用最熟习的ID属性,我们又真的懂得几呢?本章,小编就带你一同探究ID的详解。
在浏览本章前,请记着:
1,在Asp.Net页面中,任何一个服务器控件都必需且只能有一个ID属性。
2,在统一个页面中,任何一个ID都是独一的,决对不会有反复的ID值。
上面我们入手下手具体懂得ID属性:
我们利用的任何一个服务器控件的基类中,都界说了控件的标识--属性ID,界说以下:
publicvirtualstringID
{
get;
set;
}
关于服务器控件来讲,统一个页面中ID必需是独一的,由于这个ID被用来独一标识与定位这个服务器控件,假如我们没有给ID赋值的话,.Net会主动给我们赋一个。
在实践项目中,我们会发明服务器控件另有一个ClientID的属性,这个是.Net主动天生的Html客户端ID,这个ClientID是服务器主动盘算并赋值的,我们不克不及以为ClientID与ID不异,并且ClientID老是统一个值。在利用它时,我们应当用ClientID这个属性来获值。
ClientID界说以下:
publicvirtualstringClientID
{
get;
}
能够看出,这个是一个只读属性。
在实践项目中,我们常常会用到从父控件中的Controls汇合中查找子控件,除能够经由过程Controls汇合的下标来查找外,我们也能够经由过程控件的ID来查找,控件的FindControl办法供应了这个功效:
publicvirtualControlFindControl(stringid)
假如找到,前往子控件的援用,如时未找加,前往Null.
大概存在的成绩:
细心想一想,由于ID必需是独一的,假如我在一个数据控件的模板列中安排了一个服务器控件,那末我在背景只给这个控件赋了一个ID属性值,但数据控件在运转时大概会天生N多个该控件,那末,这些控件的ID怎样来坚持独一性呢?
这是由于,我们的数据控件都完成了INamingContainer接口,这个接口没有任何成员,它只是一个标识接口,它告知服务器,一切承继了我的控件,都要为控件的子控件的ID前增加一个独一的前缀,使一切子控件ID都不反复。
INamingContainer接口的界说以下:
publicinterfaceINamingContainer
当完成了这个接口这后,默许情形下,控件的子控件的ID城市由一个特别分开符分隔的三部分构成:
父控件ID分开符序列号分开符我们界说的子控件ID
个中分开符默许为"$",分开符我们能够经由过程属性IdSeparator来取得,它的界说以下:
ProtectedcharIdSeparator
{
get;
}
注重:这个分开符是能够由我们本人从头界说的。
与这个属性相干的另有一个属性是ClientIDSeparator,用来界说天生客户真个ID的分开符,它的界说以下:
ProtectedcharClientIDSeparator
{
get;
}
它的默许值是"_",如许我们就分明了为何我们页面的源代码中会有良多包括"_"的ID。
以上是小编对服务器控件ID的一些懂得,但愿对人人有所匡助。有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。 |
|