javascript - 将 Web 用户控件添加到页面时,Asp 按钮 onclick 不会触发

标签 javascript c# html asp.net web-controls

我正在使用一个使用 Visual Studio 模板创建的 Web 表单应用程序。该模板有一个内容占位符,该占位符将替换为正在访问的任何页面的内容。有问题的页面有几个服务器控件,例如文本框、标签和按钮。当我单击更新按钮时,它正常工作,值回发并更新我的数据库。

我想创建一个跨所有子页面通用的登录提示。我的导航栏位于我的主页中,是 Bootstrap 设置的。我在导航栏中添加了一个下拉列表项,其中放置了一个包含登录表单的 Web 用户控件。添加 Web 用户控件后,onclick 事件不再触发,并且我在控件验证方面也遇到问题(错误提示无效回发或参数回调)。我在网络配置中关闭了事件验证,并解决了控件不起作用的一个问题,但现在我仍然遇到 onclick 事件未触发的问题。我在这里可能缺少什么想法吗?

<ul class="nav navbar-nav navbar-right">
                    <li class="dropdown">
                        <a id="loginIcon" href="#" class="dropdown-toggle" data-toggle="dropdown" runat="server">Login<b class="caret"></b></a>
                        <ul class="dropdown-menu">
                            <li>
                                <LoginUserControl:Login ID="loginFormControl" runat="server"/>
                            </li>
                        </ul>
                    </li>
                </ul>

<form id="login">
<div class="login-content" id="loginContainer" runat="server">
    <fieldset id="inputs">
        <asp:TextBox ID="txtUserName" runat="server" placeholder="Your username" required="true"></asp:TextBox>
        <asp:TextBox ID="txtPwd" runat="server" TextMode="Password" placeholder="Password" require="true"></asp:TextBox>
    </fieldset>
    <fieldset id="actions">
        <asp:Button ID="btnLogin" CssClass="submit" runat="server" Text="Login" OnClick="checkUser"></asp:Button>
        <%--<asp:CheckBox ID="chkRemember" runat="server" Checked="true"></asp:CheckBox>Remember me--%>
    </fieldset>
    <%--<a href="#" style="float: right;">Forgot password?</a>
    <a href="#">Sign up</a>--%>
</div>
<div class="login-content" id="logoutContainer" visible="false" runat="server">
    <fieldset id="logoutAction">
        <asp:Button ID="btnLogout" CssClass="submit" runat="server" Text="Logout" OnClick="logoutUser"></asp:Button>
    </fieldset>
</div>

            <div class="w3-half">
                <div class="w3-row-padding">
                    <asp:Label ID="setPointsLbl" Text="Setpoints" CssClass="controlsLlb" runat="server"></asp:Label>
                </div>
                <div class="w3-row-padding">
                    <asp:Label Text="High:" runat="server"></asp:Label>
                    <asp:TextBox CssClass="controlsTb" ID="highSetPoint" runat="server"></asp:TextBox>
                </div>
                <div class="w3-row-padding">
                    <asp:Label Text="Low:" runat="server"></asp:Label>
                    <asp:TextBox CssClass="controlsTb" ID="lowSetPoint" runat="server"></asp:TextBox>
                </div>
                <div class="w3-row-padding">
                    <asp:Button ID="updateBtn" CssClass="btn btn-default rightFloat" Text="Update" OnClick="UpdateSetPoints" runat="server" />
                </div>
            </div>

上面的代码显示了我的母版页将用户控件添加到列表中, 用户控件中的 html,然后是我的子页面中的一些 html。

最佳答案

发生这种情况是因为页面中有 2 个表单元素。在 asp.net 中,整个站点中只允许有 1 个表单(主页面和子页面)。 该怎么办。 删除表单 id=login

关于javascript - 将 Web 用户控件添加到页面时,Asp 按钮 onclick 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029637/

相关文章:

javascript - 类型错误 : Object function Object() { [native code] } has no method 'observe'

javascript - 将 var 作为数字增加

javascript - React.js ES6 避免将 'this' 绑定(bind)到每个方法

c# - 为什么以下不起作用? (IEnumerable/IEnumerator)

html - 在 CSS 中为链接设置字体颜色

javascript - 是否可以从文本区域接收输入并随后在同一文本区域中显示输出?

javascript - 等待异步函数(不接受回调也不返回 promise )在不更改其他函数的情况下执行

c# - 如何在C#中列出计划任务

c# - 在父子关系中具有多个对象的 Linq 查询

html - <a name =""> 在 firefox 和移动浏览器上链接以上部分而不是内部