2013-07-01 35 views
0

我有一個GridView中有一個TextField列..我已經設置了此TextField列的驗證,以便它需要一個輸入(即它不是可選的),並且輸入可以只是一個正整數..GridView的TextField驗證仍然允許下一個行動,儘管有錯誤

當文本字段爲空或者沒有正整數值時會顯示錯誤,但有一個服務器端按鈕,即使存在在GridView中的錯誤..

我想按鈕不做處理,如果有輸入錯誤..目前這不會發生,因爲即使有錯誤,仍然調用按鈕的點擊事件..

GridView的標記代碼:

<asp:GridView ID="EPSAndTSRValuesInputGridView" runat="server" ShowFooter="true" 
    AutoGenerateColumns="false"> 
    <Columns> 
     <asp:TemplateField HeaderText="EPS Value"> 
      <ItemTemplate> 
       <asp:TextBox ID="EPSValue" Text='<%# Eval("EPSValue") %>' runat="server" CausesValidation="True" ValidationGroup="Display"></asp:TextBox> 
       <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Enter a valid value for EPS!" 
         ValidationExpression="^\d*$" ControlToValidate="EPSValue" ValidationGroup="Display"/> 
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*" 
         ControlToValidate="EPSValue" ValidationGroup="Display"/> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

按鈕,進行下一步的行動:

<asp:Button ID="btnDisplayReport2" 
    runat="server" CssClass="ButtonStyle" 
    Text="Display Report" ValidationGroup="Display" OnClick="btnDisplayReport2_Click" CausesValidation="true"/> 

回答

1

發生這種情況,因爲你的按鈕有驗證組Display所以在它的點擊將驗證只能與同一控制組,即Display。我可以看到沒有驗證組Textbox,因此它不會在按鈕單擊時驗證它,導致點擊按鈕上的驗證在您的中添加相同的驗證組,RegularExpressionValidatorRequiredFieldValidator

+0

我已經將它們全部添加到相同的ValidationGroup中。行爲仍然沒有變化..我已經更新了上面的主代碼.. – Ahmad

+0

@Ahmad我仍然看不到您的文本框的驗證組... add驗證組在你的文本框太... ....使其工作.... –

+0

剛剛嘗試過呢..仍然無效:(..我已經更新代碼無論如何.. – Ahmad

0

我認爲這是因爲它們沒有相同的ValidationGroup。 嘗試將ValidationGroup="Display"添加到驗證器中。

+0

只是試過..仍然沒有工作:/ – Ahmad

+0

嘗試添加'ValidationGroup =「Display」'EPSValue if if你還沒有。 –

+0

你的意思是textfield本身? – Ahmad

0

您是說要在點擊按鈕上執行驗證組Display.It將只驗證控件是否具有驗證組(顯示),您沒有爲Textbox驗證器定義任何驗證組嘗試通過添加相同的驗證組(顯示),RegularExpressionValidatorRequiredFieldValidator

+1

It是我原來的代碼中的一個錯誤,我沒有提到兩個驗證器的ValidationGroup =「Display」。現在已經得到糾正(請參閱上面的新代碼)。總而言之,我添加了兩個驗證器,按鈕,現在到同一個驗證組,並且它不會停止按鈕的單擊事件以在出現輸入錯誤時停止。 – Ahmad

相關問題