我有一个控制,比如说:
<asp:Button runat="server" id="button"></asp:Button>实际的id是“按钮”,但是在使用浏览器控制台进行调试时,我可以找到类似于"ctl100_but$button“的id。下面是我的疑虑。
1.)ctl100_but是从哪里生成的?2)这个id的目的是什么?3)有方法阻止这种动态生成吗?
谢谢。
发布于 2017-11-21 04:44:44
1& 2.这是由asp.net在后端生成的,当它将您的asp.net代码转换为可以被浏览器理解的html代码时。唯一的目的是避免重复ID时,我们使用中继器或网格视图,因为在这些情况下,我们设计的项目模板与相同的ID,当网格视图或中继器被呈现时,就会有多个项目。因此,Asp.Net使用这个动态Id生成。Gridview和中继器只是少数几个例子,还有更多这样的控制。
使其静态不会影响任何东西,只要没有重复的ids。
发布于 2017-11-21 09:52:21
我要说的是,这是框架的命名约定,框架是如何以自己的方式工作的。请参阅详细信息https://msdn.microsoft.com/en-us/library/system.web.ui.clientidmode(v=vs.110).aspx
https://stackoverflow.com/questions/47405016
复制相似问题