ASP.NET自动生成控件name问题
4个回答
2016-06-18 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
ASP.NET自动生成控件name的规则:
比如生成一个input文本框,name的值如下:
<input type="hidden" name="ctl00$cphMain$hfdFueraHorarioOficinaConfirmado"
id="cphMain_hfdFueraHorarioOficinaConfirmado" value="False" />
这样在程序中使用到name的地方就比较麻烦了,获取方法如下:
var hfdFueraHorarioOficinaConfirmado =
document.getElementById('<%= hfdFueraHorarioOficinaConfirmado.ClientID %>');
一般地可以使用ClientIDMode 属性来控制客户端id的生成。
ClientIDMode - 生成客户端 ID 的方式
ClientIDMode.AutoID - 生成方式和以前一样,为保证唯一,会把其以上各层级的控件ID拿过来拼成一个页面中的唯一ID
ClientIDMode.Inherit - 继承父控件的客户端ID生成方式
ClientIDMode.Static - 静态方式。在服务端设置的ID是什么,客户端所呈现的ID就是什么
ClientIDMode.Predictable - 生成ID的方式为:[Prefix]_[ID]_[Suffix]
注意:
在某控件层级中如果没有设置 ClientIDMode,则其默认值为 AutoID
如果在控件层级中的父级控件设置了 ClientIDMode,则其子控件的默认值为 Inherit
写法如下:
<fieldset>
<legend>Legacy</legend>
<asp:TextBox ID="txtLegacy" ClientIDMode="AutoID" runat="server" Text="ID: txtLegacy" />
</fieldset>
比如生成一个input文本框,name的值如下:
<input type="hidden" name="ctl00$cphMain$hfdFueraHorarioOficinaConfirmado"
id="cphMain_hfdFueraHorarioOficinaConfirmado" value="False" />
这样在程序中使用到name的地方就比较麻烦了,获取方法如下:
var hfdFueraHorarioOficinaConfirmado =
document.getElementById('<%= hfdFueraHorarioOficinaConfirmado.ClientID %>');
一般地可以使用ClientIDMode 属性来控制客户端id的生成。
ClientIDMode - 生成客户端 ID 的方式
ClientIDMode.AutoID - 生成方式和以前一样,为保证唯一,会把其以上各层级的控件ID拿过来拼成一个页面中的唯一ID
ClientIDMode.Inherit - 继承父控件的客户端ID生成方式
ClientIDMode.Static - 静态方式。在服务端设置的ID是什么,客户端所呈现的ID就是什么
ClientIDMode.Predictable - 生成ID的方式为:[Prefix]_[ID]_[Suffix]
注意:
在某控件层级中如果没有设置 ClientIDMode,则其默认值为 AutoID
如果在控件层级中的父级控件设置了 ClientIDMode,则其子控件的默认值为 Inherit
写法如下:
<fieldset>
<legend>Legacy</legend>
<asp:TextBox ID="txtLegacy" ClientIDMode="AutoID" runat="server" Text="ID: txtLegacy" />
</fieldset>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能自己设置,这是为了避免HTML控件的name和id出现冲突
更多追问追答
追问
那怎么才能把美元符前面那一段去掉?
追答
前面那段是因为页面继承了模板页,没办法去掉,同样是为了避免冲突,我觉得你不要再问关于这个name的问题了,你应该说说为什么你要修改这个name,肯定可以换一种方式解决你遇到的问题,不需要去修改这个name
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己修改一下就可以了啊
追问
怎么改?具体。在asp控件里加name是没用的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询