[英]control id change automatically in MasterPage
为什么在主页中使用控件ID时会自动更改,而在简单页面中控件却没有更改?
这是运行MasterPage之后的源代码
as :: <input name="ctl00$cp1$txtUName" type="text" id="ctl00_cp1_txtUName" style="width:128px;" />
<input name="ctl00$cp1$txtUName" type="text" id="ctl00_cp1_txtUName" style="width:128px;" />
这是运行简单页面后的源代码
AS: <input name="txtUName" type="text" id="txtUName" />
这些是相同的控件
事实并非如此,当您将输入控件与runat =“ server”一起使用时,其ID将由服务器生成。 如果使用的是asp.net 4.0,则可以在<% @page ...
声明中使用CliendIDMode="static"
来阻止它。
我猜测这个问题是由于您使用的某些javascript不再引用正确的ID(因为它已更改)引起的。 如果是这样,当您从服务器发送JavaScript时,请使用clientID方法。 因此,例如alert('<%= txtUName.ClientID %>')
将在运行时生成一个具有正确ID的警报框
我想您已经在母版页中使用了TextboxControl,并且在问题中显示的是结果HTML。
母版页是一个命名容器 (实际上是一个用户控件,被注入到页面的控件层次结构中)。 命名容器的所有子代都将容器名称作为前缀,以使控件名称与另一个容器中具有相同名称的控件区分开。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.