2017-02-28 59 views
0

這是我的aspx代碼:如何驗證特定行的gridview中的文本框?

<asp:TemplateField HeaderText="Enter_Quantity" > 
    <ItemTemplate> 
    <asp:TextBox ID ="TextBox1" runat="server" DataField="Total_Quantity" /> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="Please add a quantity"> </asp:RequiredFieldValidator> 
    </ItemTemplate> 
    </asp:TemplateField> 

    <asp:TemplateField> 
    <ItemTemplate> 
    <asp:Button ID ="Button7" runat="server" OnClick="Button7_Click" CommandArgument="Button7" CommandName="Select" Text="Add To Cart" CausesValidation ="true" /> 
    </ItemTemplate> 
    </asp:TemplateField> 

請注意,按鈕是在每一個GridView的行並文本框欄是每個GridView的一行。 我面臨的問題是,當我保持文本框爲空,然後單擊按鈕。它顯示錯誤消息「請添加數量」。但它顯示在每個Gridview行中。我想爲該特定的GridView行顯示此錯誤消息。 我該如何解決這個問題? 有人可以糾正我的aspx代碼嗎?

+0

你看到了嗎? http://stackoverflow.com/questions/30433490/testbox-validation-in-specific-row-in-the-gridview和http://www.aspsnippets.com/Articles/Validate-only-certain-selected-GridView -Row-Controls-like-TextBox-using-ASPNet-Validators.aspx – Aristos

回答

1

Set CauseValidation = "false"

它允許您從特定控件中刪除驗證。假設你在頁面中使用了兩個按鈕,但你只需要一個按鈕來驗證。但按照ASP規則,所有按鈕都會驗證您的表單,因爲默認情況下爲CausesValidation = true

+1

你能闡述它爲什麼起作用嗎?幫助用戶學習:D –

+0

它允許您從特定控件中移除驗證。假設您在頁面中使用了兩個按鈕,但只需要一個按鈕進行驗證。但按照ASP規則,所有按鈕都會驗證您的表單,因爲默認情況下爲CausesValidation = true。 – Adi

+1

希望這會幫助你學習:) – Adi