asp .net服务器用html,ASP.NET 能不能自定义服务器端控件输出为 HTML 时的 id?

.NET Framework 4.0 中,已经解决了此问题,所以此文只适用于 .NET Framework 4.0 以下。请参见.NET Framework 4.0 ClientIDMode,自己给控件指定输出时的 HTML id。

ASP.NET 能不能自定义服务器端控件输出为 HTML 时的 id?因为我发现本来我的服务器端 DropDownList ID 为 _contentType,输出的 select 的 id 却成了 ctl00__main__contentType,搞得我 JavaScript 很不好操作,想自定义,可以自定义吗?

答案是不能,但为什么呢?

ASP.NET 编程最大的改变是桌面式编程,比如以前获取一个值用 Request.Form,而 ASP.NET 中除了用这个方法还可以直接用类似 ID.Text 的方法来获取值。

由于 ASP.NET 支持 MasterPage、GridView 等一系列类似嵌套的东西,同时为了配合验证控件等客户端功能的运行,所以 ASP.NET 必须通过自己的一套规则来给最终输出的 HTML 控件的 id 和 name 命名,如果是用户自己来命名,那么 ASP.NET 可能就会造成混乱,最终无法正确取值。

ASP.NET 这种不允许自定义 id、name 的特性,虽然方便了服务器端编程,但确实在 JavaScript 编程上造成一定的麻烦。

如果我们的 JavaScript 想要操作这个控件怎么办呢?

一种是如果简单的页面,没有涉及到 MasterPage、GridView 等这些情况,那么可以直接用这个服务器端 ID 来当作客户端 id。

一种是使用了 MasterPage、GridView 等这些情况,这种情况我们最好不要试图使用 ASP.NET 的命名规则去获取 id。因为我试过,不同版本的 .NET Framework 的命名规则有点不同。此时我们可以在 JavaScript 中嵌入 来实现 JavaScript 中获取。当然侧面的方法还有通过 ezj 获取控件的 class 来实现。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值