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

时间:2013-07-08 16:12:08

标签: asp.net button user-controls postback

我有一个UserControl的内容页面。将UserControl添加到页面后,所有按钮(包括母版页中的按钮)都将停止工作。如果我删除UserControl按钮再次开始工作。如果不工作,我的意思是如果你点击它们根本没有任何事情发生,没有回发。某些按钮仍然有效,例如对列进行排序的GridView标题标签。这些导致回发,但没有别的。

UserControl中的唯一元素是包含html fieldset的{​​{1}},其中包含labelRequiredFieldValidator

此解决方案here提及通过在TextBox中添加!isPostBack检查来解决类似问题,但包含哪些内容?我的Page_Load UserControl事件目前为空。

更新

用户控制.ascx

Page_Load

更新2

删除<%@ 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> 并且没有任何更改,但当我删除fieldset时,页面开始正常运行。现在我需要问一下如何保持RequiredFieldValidator并允许RequiredFieldValidator正常运行?

1 个答案:

答案 0 :(得分:0)

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

然后,解决方案是为RequiredFieldValidator设置验证组,并在UserControl内部或外部设置一个按钮,以CausesValidation="true"ValidationGroup=[group]