繁体   English   中英

控件ID在MasterPage中自动更改

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM