Asp 将 Web 用户控件添加到页面时,按钮 onclick 不会触发
Asp button onclick does not fire when web user control is added to the page
我正在使用我使用 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
我正在使用我使用 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