我有gridview的模板字段(文本框,下拉列表,...),我使用文本框和下拉列表中的必需字段验证器,我在textchanged和dropselected索引上进行验证,我的问题是验证发生在所有行不仅仅在我更改文本的行上 任何想法?
对于驻留在其他行中的所有下拉列表,将启动验证。我该怎么办呢?
感谢
这个代码:
<asp:GridView ID="uxCountSheetView" runat="server" AutoGenerateColumns="false" OnRowDataBound="uxCountSheetView_RowDataBound"
AllowPaging="true" PageSize="15" OnPageIndexChanging="uxCountSheetView_PageIndexChanging" ShowFooter="true">
<Columns>
<asp:TemplateField HeaderText="Item">
<ItemTemplate>
<asp:DropDownList ID="uxItems" runat="server" Width="100" CausesValidation="true" ValidationGroup="All" AutoPostBack="true" OnSelectedIndexChanged="uxItems_SelectedIndexChanged"></asp:DropDownList>
<asp:RequiredFieldValidator id="RequiredFieldValidator3"
ControlToValidate="uxItems" Display="Static" ValidationGroup="All" InitialValue="" Width="100%" runat="server">*</asp:RequiredFieldValidator> </ItemTemplate> </asp:TemplateField>
<asp:TemplateField HeaderText="AfterQuantity">
<ItemTemplate>
<asp:TextBox ID="uxAfterQuantity" ValidationGroup="All" CausesValidation="true" OnTextChanged="uxAfterQuantity_TextChanged" AutoPostBack="true" runat="server"></asp:TextBox>
<cc1:FilteredTextBoxExtender ID="uxFilterAfterQuantity" runat="server" FilterType="Custom, Numbers"
TargetControlID="uxAfterQuantity" ValidChars="."></cc1:FilteredTextBoxExtender>
<asp:RequiredFieldValidator runat="server" id="RequiredFieldValidator6"></asp:RequiredFieldValidator>
ControlToValidate="uxAfterQuantity"
Display="Static" ValidationGroup="All"
InitialValue="" Width="100%" runat="server"></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="Difference"></Columns></asp:GridView>
答案 0 :(得分:1)
如果在选择行时回发表单,则可以将currentrow的验证程序控件的ValidationGroup设置为活动文本,其他行的所有其他验证控件应将ValidationGroup设置为非活动状态。
并将提交按钮的ValidationGroup设置为导致验证的活动文本。
这将允许您的提交按钮仅验证具有活动ValidationGroup的验证器。
答案 1 :(得分:1)
选中此链接以使用验证程序验证gridview中的控件
http://www.opexsolution.com/category/technical-corner/
转到gridview控件第一部分主题中使用验证器