我有一个UserControl
的内容页面。将UserControl
添加到页面后,所有按钮(包括母版页中的按钮)都将停止工作。如果我删除UserControl
按钮再次开始工作。如果不工作,我的意思是如果你点击它们根本没有任何事情发生,没有回发。某些按钮仍然有效,例如对列进行排序的GridView
标题标签。这些导致回发,但没有别的。
UserControl
中的唯一元素是包含html fieldset
的{{1}},其中包含label
和RequiredFieldValidator
。
此解决方案here提及通过在TextBox
中添加!isPostBack
检查来解决类似问题,但包含哪些内容?我的Page_Load
UserControl
事件目前为空。
用户控制.ascx
Page_Load
删除<%@ 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
正常运行?
答案 0 :(得分:0)
我明白了。问题是RequiredFieldValidator
未设置为对任何特定按钮进行验证,因此它将尝试在页面上的任何按钮上单击验证。我也没有将任何按钮设置为CausesValidation="true"
。
然后,解决方案是为RequiredFieldValidator
设置验证组,并在UserControl
内部或外部设置一个按钮,以CausesValidation="true"
和ValidationGroup=[group]
。