将UserControl添加到页面后,按钮将停止工作



我有一个带有UserControl的内容页面。当UserControl添加到页面时,所有按钮,包括主页面中的按钮,都将停止工作。如果我卸下UserControl,按钮将重新开始工作。不工作,我的意思是,如果你点击它们,什么都不会发生,也不会回发。有些按钮仍然有效,例如对列进行排序的GridView标题标签。这些导致回发,但没有其他原因。

UserControl中的唯一元素是包含html labelfieldset、包含RequiredFieldValidatorTextBox

此解决方案提到通过在Page_Load中包含!isPostBack检查来解决类似的问题,但包含了什么?我的UserControl Page_Load事件当前为空。

更新

用户控制.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="StaffEditFields.ascx.cs"
    Inherits="StaffEditFields" %>
<fieldset>
    <label>
        Username
        <asp:RequiredFieldValidator ID="rfdUser" runat="server" Display="Static"
            ControlToValidate="txtUser" />
            <br />
        <asp:TextBox ID="txtUser" runat="server" CssClass="fvBox" Text='<%# Bind("Username") %>' />
    </label>
</fieldset>

更新2

删除了fieldset,没有任何变化,但当我删除RequiredFieldValidator时,页面开始正常工作。现在我需要问一下如何保持RequiredFieldValidator并使UserControl正常工作?

我想明白了。问题是RequiredFieldValidator没有设置为对任何特定按钮进行验证,因此它将尝试在页面上的任何按钮上进行验证。我也没有将任何按钮设置为CausesValidation="true"

解决方案是为RequiredFieldValidator设置验证组,并将UserControl内部或外部的按钮设置为CausesValidation="true"ValidationGroup=[group]

最新更新