Javascript 将aspx页面转换为WebUserControl

Javascript 将aspx页面转换为WebUserControl,javascript,asp.net,webusercontrol,Javascript,Asp.net,Webusercontrol,我在将ASPX页面转换为控制器(ASCX)时遇到问题。我的JavaScript没有在隐藏的div中找到文本框,也没有触发onclick事件。但是,它在ASPX页面中工作得非常好 我的JavaScript是 function FireEditClickButton() { document.getElementById("btnFireEdit").click(); } 它应该与下一个按钮一起启动隐藏在一个div中的按钮) 每当checklistbox有值时调用 这两个错

我在将ASPX页面转换为控制器(ASCX)时遇到问题。我的JavaScript没有在隐藏的div中找到文本框,也没有触发onclick事件。但是,它在ASPX页面中工作得非常好

我的JavaScript是

function FireEditClickButton() {
        document.getElementById("btnFireEdit").click();
    }
它应该与下一个按钮一起启动隐藏在一个div中的按钮)

每当checklistbox有值时调用

这两个错误都表示它们为null,但它们就在这里的一个隐藏div中

<div style="visibility: hidden">
        <asp:TextBox ID="tbRA" runat="server"></asp:TextBox>
        <asp:Button ID="btnFireEdit" runat="server" OnClick="btnFireEdit_Click" />
    </div>

既然它在ASPX页面中工作得很好,为什么会发生这种情况呢?这与WebUserControl不使用表单标记有关吗


感谢使用嵌套控件(或母版页中嵌套的页面)时,默认情况下,客户端上的ID将不同于服务器上的ID。ASP.NET默认情况下这样做是为了帮助确保客户端上的所有ID都是唯一的。但是,您可以使用以下两种方法之一来防止这种情况

第一个选项是将更改为静态。可以在控件、页面、web.config或machine.config级别执行此操作。web.config技术如下所示。然后,客户端上的ID将与服务器上的ID匹配

<configuration>
    <system.web>
        <pages clientIDMode="static" />
    </system.Web>
</configuration>

然而,这是一个糟糕的想法。如果重命名
myctrlname
btnfreedit
,则客户端代码将在运行时失败。编译时失败总是比运行时失败更好。

您的javascript找不到按钮,因为在呈现的HTML中,它不再具有
id=“btnfreedit”
,而是基于用户控件名称的id(例如
id=“myctrlname\u btnfreedit”

你有两个选择。。。更新javascript以包含usercontrol的名称

document.getElementById("myctrlname_btnFireEdit").click();
document.getElementById("<%=btnFireEdit.ClientID%>").click();

谢谢你的建议、解释和帮助,不过freefaller还是先找到了;)欢迎您@Chris-祝您的项目顺利完成
<configuration>
    <system.web>
        <pages clientIDMode="static" />
    </system.Web>
</configuration>
document.getElementById('<%= btnFireEdit.ClientId %>');
document.getElementById("myctrlname_btnFireEdit").click();
document.getElementById("myctrlname_btnFireEdit").click();
document.getElementById("<%=btnFireEdit.ClientID%>").click();
<asp:Button ID="btnFireEdit" runat="server" OnClick="btnFireEdit_Click"
  ClientIDMode="Static" />