ASP.NET自动生成控件name问题
答案:4 悬赏:0 手机版
解决时间 2021-03-01 15:47
- 提问者网友:呐年旧曙光
- 2021-02-28 15:37
ASP.NET自动生成控件name问题
最佳答案
- 五星知识达人网友:春色三分
- 2021-02-28 16:20
ASP.NET自动生成控件name的规则:
比如生成一个input文本框,name的值如下:
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
写法如下:
比如生成一个input文本框,name的值如下:
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
写法如下:
全部回答
- 1楼网友:等灯
- 2021-02-28 18:09
不能自己设置,这是为了避免HTML控件的name和id出现冲突追问那怎么才能把美元符前面那一段去掉?追答前面那段是因为页面继承了模板页,没办法去掉,同样是为了避免冲突,我觉得你不要再问关于这个name的问题了,你应该说说为什么你要修改这个name,肯定可以换一种方式解决你遇到的问题,不需要去修改这个name追问那么长的name做参数好费劲的。。
- 2楼网友:夜余生
- 2021-02-28 17:50
自己修改一下就可以了啊追问怎么改?具体。在asp控件里加name是没用的。
- 3楼网友:煞尾
- 2021-02-28 17:31
应该可以吧,虽然很久没用aspnet web form开发了,但记得服务器控件都有一个属性,ClientIDModel,这个就是id生成 的模式 ,你选择为 Static,就是你那个id名了,不会动态改变,
这样,开发时你得自己保证页面上只有一个这样id的控件。
这样,开发时你得自己保证页面上只有一个这样id的控件。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯