admin 管理员组文章数量: 1086019
2024年4月18日发(作者:margin四个属性值)
.NET中获取服务器端控件的ID进行客户端编程
.NET中获取服务器端控件的ID进行客户端编程
2009-12-10 09:42
在 的服务器端控件中有三种关于 ID 的属性,即 ID,
ClientID 和 UniqueID。
ID 表示控件的服务器端编程的标识符,我们写"服务器端的代码",
就要用到这个 ID, 通过这个 ID 可以在服务器端对服务器端控件的属性、
方法和时间进行编程访问。(可写)
ClientID 表示由服务器端生成的客户端控件的ID,"经常用于在客
户端脚本中访问服务器控件所呈现的 HTML 元素"。一般情况下与服务
器端的 ID 相同,有时,不能为控件生成唯一的名称,例如,如果
Repeater 空间在它的某个模板中包含一个 Label 控件,则将在客户端
生成多个该 Lable 的 HTML 元素, 为防止命名冲突, 为各个
服务器控件生成一个唯一的 ClientID ,ClientID 通过将子控件的父控件
的 UniqueID 值与控件的 ID 值连接生成,各个部分之间以下划线 _ 连
接。(只读)
UniqueID 用于获取服务器控件的唯一的、以分层方式表示的标识
符。当将控件放置到重复控件(Repeater、DataList和DataGrid)中
时,将可能生成多个服务器端的控件,这就需要区分服务器端的各个
控件,以使它们的 ID 属性不冲突。UniqueID 通过将子控件的父控件
的 UniqueID 值与控件的 ID 值连接生成,各个部分之间以
IdSeparator 属性指定的字符连接。默认情况下, IdSeparator 属性
为冒号字符 (:)。此属性为在 .Net Framework2.0种新增加。js与
交互一般情况下使用<%=控件ID%>就OK了,但如
果用到母版页(MasterPage)则要使用UniqueID获得获值。(只读)
例如,创建以下 服务器控件:
ClientID 属性被设置为 TextBox1,在基于 HTML 的浏览器中,
其结果元素与以下所示类似:
id="Text1" />
可以使用这些属性在客户端脚本中引用服务器控件。通常,必须
在客户端脚本中用完全限定引用来引用控件;如果控件是页面中 form
元素的子控件,则一般使用[0]. =
"New value"在客户端脚本中引用控件。
有些控件将子控件呈现在页面中。这些控件中包括数据列表控件
(如GridView、DetailsView、FormView、DataList 和 Repeater 控
件)、用户控件和 Web 部件控件。可以看到,在这些情况下,子控件
可能不具有唯一的 ID,这可能是因为子控件是在某个模板中定义的,
该模板会为每个数据行(数据列表控件)生成新的控件实例,也可能
是因为可以从外部源(用户控件和 Web 部件控件)将父控件添加到页
面中对于每个子控件:控件的 UniqueID 被呈现为 name。控件的
ClientID 被呈现为 id 属性。
ClientID 和 UniqueID 属性都基于原始的 ID 属性,并用足够的信
息进行了修改,以保证页面中结果的唯一性。ClientID的值可在客户
端脚本中引用。如果在浏览器中显示一个具有命名容器的页面,则可
以查看该页面的源文件,从中找到唯一的 ID,这些 ID 作为命名容器
子控件的 name 属性和 id 属性生成。但是,建议不要依赖于直接引用
在浏览器中看到的 ID。因为用于生成子控件唯一ID 的公式可能会发生
变化,应当获取子控件的 ClientID 属性值,并用该值来引用该子控件。
例如,您可能会在页面中动态创建客户端脚本。如果客户端脚本引用
一个子控件,则应获取该子控件的 ClientID 属性,并将其嵌入到动态
脚本中。
例2:
假设有子控件:
那么我们可以在脚本中这样写
版权声明:本文标题:.NET中获取服务器端控件的ID进行客户端编程 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713379226a631686.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论