2013-10-16 67 views
0

我有這樣的代碼:必填字段驗證始終顯示錯誤消息

<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"上需要提交的驗證

<asp:RequiredFieldValidator ID="rvFirstName" runat="server" Display="Dynamic" 
    ErrorMessage="Enter First Name" ForeColor="Red" 
    ControlToValidate="txtFirstName" SetFocusOnError="True"> 
</asp:RequiredFieldValidator> 
+0

我沒有任何按鈕的問題。該錯誤消息顯示頁面加載時的時間 – Gesh

+0

或者您可以使用ValidationGroup作爲相關控件(包括按鈕) –

+0

的原因來降低投票率 –

0

請以下面引用一看,是你在你的頁面類似Page.Isvalid?

參考文獻:Required Field Validator, displaying on initial page load

+0

不,我檢查頁面。IsValid在提交按鈕的點擊事件不在頁面加載,我不檢查它在任何其他地方 – Gesh

+0

你可以發佈你的頁面加載事件嗎? –

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

+0

所以你的建議是使用'ValidationGroups'?我認爲這是一個問題,因爲ValidationSummary在頁面中,按鈕在一個用戶控件中,而'TextBox + RequiredFieldValidator'在不同的用戶控件中。 –

+0

是的這不起作用在我的情況下 – Gesh

1

最好的辦法是設置上的ValidationGroup按鈕和使用RequiredFieldValidator。

0

設置 '的ValidationGroup' 的的RequiredFieldValidator和下一步按鈕

+0

驗證器和按鈕在不同的文件 – Gesh

0

卸下SetFocusOnError = 「真」和在添加顯示= 「動態」代替SetFocusOnError = 「真」您的必填字段驗證並在您的信息頁中設置casevalidtion =「false」

+0

我做到了,沒有任何改變 – Gesh

0
  1. 01.If要顯示在頁面加載消息。 protected void Page_Load(object sender,EventArgs e) if(!Page.IsPostBack) Page.Validate(); }}

    1. 顯示= 「動態」