ASP.NET自动生成控件name问题

总是自动生成一个很长的name,好像是父元素+美元符+控件ID,能不能自己设置?... 总是自动生成一个很长的name,好像是 父元素 + 美元符 + 控件ID,能不能自己设置? 展开
 我来答
真爱无限023
2014-04-19 · TA获得超过138个赞
知道小有建树答主
回答量:180
采纳率:0%
帮助的人:108万
展开全部
应该可以吧,虽然很久没用aspnet web form开发了,但记得服务器控件都有一个属性,ClientIDModel,这个就是id生成 的模式 ,你选择为 Static,就是你那个id名了,不会动态改变,

这样,开发时你得自己保证页面上只有一个这样id的控件。
育知同创教育
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>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
942129263
2014-04-19 · TA获得超过364个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:146万
展开全部
不能自己设置,这是为了避免HTML控件的name和id出现冲突
更多追问追答
追问
那怎么才能把美元符前面那一段去掉?
追答
前面那段是因为页面继承了模板页,没办法去掉,同样是为了避免冲突,我觉得你不要再问关于这个name的问题了,你应该说说为什么你要修改这个name,肯定可以换一种方式解决你遇到的问题,不需要去修改这个name
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小博测试成长之路
2014-04-19 · 超过13用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:23.4万
展开全部
自己修改一下就可以了啊
追问
怎么改?具体。在asp控件里加name是没用的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式