ASP.NET 4.0的七大新特性之"控件的ClientIDMode"

 在早期的ASP.NET框架中,如果你放置一个控件在一个容器中,如GridView模板列、登录模板、其它,在运行时这些控件的ID将被替换由ASP.NET自身产生的随机唯一ID。
      
      为开发者提供服务方访问控件的Page.FindControl("controlid")以及JavaScript中使用 的document.getElementById("controlid"),这是一个由来已久的问题。简单来说运行时生成的控件ID并不是可预见的。
       
  但.NET开发者不久将会没有这样的困扰,但是。因为在ASP.NET 4.0中所有控件有一个属性ClientIDMode。这提供了良好的控制生成的ID的内容控制在运行时。
对ClientIDModes可用的类型有:

  1. 自动识别(AutoID) -这是相同的随机方式,因为它发生在使用ASP.NET的早期版本。
  2. 静态(Static) -控件的ID将不会改变在运行时。这是非常方便的设置如果被控制在网页上使用的容器或需要在客户端脚本访问。
  3. 可预测的(Predictable) 模式-静态模板像一个TextBox控件在GridView不会有用,因为GridView的行的重复。在这种情况下可预测的模式值是在方便的地方,开发者可以提供一个可预测ClientIDRowSuffix属性的主键的GridViewRow使用。可以预见,这将追加后缀,以独特的价值作为实际控制的ID。例如,如果实际控制TemplateColumn控件ID在是txtBox和ClientIDRowSuffix是GridViewRowIndex文本框的ID识别码,然后在运行时产生的row1将GridView1_txtBox_1上,为row2将GridView1_txtBox_2等。
  4. 继承(Inherit ) -这将继承父控件ClientIDMode值的。
  5. 在指定的页面级别上,你不必为每个控件提供ClientIDMode。
<%@ Master Language="C#" ClientIDMode="Predictable" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="MyWebApplication.SiteMaster" %>

Or it could also be provided at the application level using the web.config specification as shown below.
<system.web>
      <pages clientIDMode="Predictable"></pages>
</system.web>
请注意,ClientIDMode在控制层将覆盖在页面指令和web.config上述设置中指定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值