仓酷云 发表于 2015-1-16 14:23:48

来一篇关于NET的Asp.Net中服务器控件ID属性详解

你觉得学习.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的一些懂得,但愿对人人有所匡助。有个问题想请教你一下,呵呵:)你觉得将来学什么方向比较好,我真是想不出来,知道的太少了,麻烦了。

简单生活 发表于 2015-1-18 13:47:48

由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。

若相依 发表于 2015-1-25 12:39:34

是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。

透明 发表于 2015-2-2 22:07:35

asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!

活着的死人 发表于 2015-2-8 12:27:19

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

小女巫 发表于 2015-2-25 15:31:45

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。

admin 发表于 2015-3-8 00:42:00

这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。

飘飘悠悠 发表于 2015-3-15 19:32:06

如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。

山那边是海 发表于 2015-3-22 03:29:52

同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
页: [1]
查看完整版本: 来一篇关于NET的Asp.Net中服务器控件ID属性详解