我有这段代码:
<asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rvFirstName" runat="server"
ErrorMessage="Enter First Name"
ForeColor="Red" ControlToValidate="txtFirstName"
SetFocusOnError="True"></asp:RequiredFieldValidator>
问题是每次页面加载时都会显示错误消息,而不仅是在单击提交按钮后。我希望它只在用户尝试单击“下一步”(提交)按钮时显示它(它应该如何工作)。
如果这是相关的:上面的代码放在UserControl中,UserControl包含在另一个UserControl中(“Next”按钮在这里),然后将其包含在MultiView视图中。
任何想法
答案 0 :(得分:1)
在其他按钮上使用causeValidation为false。
并显示为动态。
Display="Dynamic"
on require filed validator
<asp:RequiredFieldValidator ID="rvFirstName" runat="server" Display="Dynamic"
ErrorMessage="Enter First Name" ForeColor="Red"
ControlToValidate="txtFirstName" SetFocusOnError="True">
</asp:RequiredFieldValidator>
答案 1 :(得分:1)
最好的方法是在Button和RequiredFieldValidator上设置ValidationGroup。
答案 2 :(得分:0)
请看下面的参考资料,您的网页中是否有类似Page.Isvalid的内容?
参考文献:Required Field Validator, displaying on initial page load
答案 3 :(得分:0)
<asp:ValidationSummary ID="ValidationSummary1" runat="server"
ShowMessageBox="True" DisplayMode="BulletList"
HeaderText="Validation issues" ShowSummary="False" ValidationGroup="Validation"/>
<asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rvFirstName" runat="server" ErrorMessage="Enter First Name" ForeColor="Red" ControlToValidate="txtFirstName" SetFocusOnError="True" ValidationGroup="Validation"></asp:RequiredFieldValidator>
添加上述代码并修改您的Required Field Validator
答案 4 :(得分:0)
为RequiredFieldValidator和Next按钮设置'ValidationGroup'
答案 5 :(得分:0)
删除 SetFocusOnError =“True”并添加 display =“Dynamic” ,而不是 SetFocusOnError =“True”在 requiredfieldvalidation 中,并在页面中设置 casevalidtion =“false” 。
答案 6 :(得分:0)
01.如果要在页面加载中显示消息。 protected void Page_Load(object sender,EventArgs e) { if(!Page.IsPostBack) { Page.Validate(); } }