如何限制按钮以对特定控件进行验证?

Has*_*aan 0 c# asp.net gridview

我有文本框和网格视图。在网格视图中还有正在验证的文本框。在页脚中有一个按钮,如果网格视图当前行通过验证,则创建新行。

问题是,当按下网格视图内的按钮时,它还会验证网格外的内容。这个怎么控制?

我的 aspx 代码如下:

  <h4>Worked Date</h4>
     <asp:TextBox runat="server" ID="txtDateOfWorkForInserting" CssClass="form-control" EnableViewState="false" ClientIDMode="Static" ValidateEmptyText="true"/>
     <asp:RequiredFieldValidator ID="rfvDateOgWork"
     CssClass="text-danger" ControlToValidate="txtDateOfWorkForInserting"
      runat="server" EnableViewState="true" ErrorMessage="*" ToolTip="Select Date" Display="Dynamic" ></asp:RequiredFieldValidator>

      <asp:GridView ID="gvWorkDone" runat="server" ShowFooter="True" AutoGenerateColumns="False"
                    CellPadding="4"  GridLines="None" OnRowDeleting="gvWorkDone_RowDeleting" CssClass="table-responsive table table-striped"
                    Style="text-align: left" >
                    <Columns>
                        <asp:BoundField DataField="RowNumber" HeaderText="SNo" />
                        <asp:TemplateField HeaderText="Work Description">
                            <ItemTemplate>
                                <asp:TextBox ID="txtWorkDone" runat="server" CssClass="form-control multilineTextbox" TextMode="MultiLine" ></asp:TextBox>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtWorkDone"
                                    ErrorMessage="*" SetFocusOnError="True" InitialValue="<% %>"></asp:RequiredFieldValidator>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="Time To Complete">
                            <ItemTemplate>
                                 <asp:DropDownList runat="server" ID="ddlTotalTime">
                            <asp:ListItem Selected="True">1</asp:ListItem>
                            <asp:ListItem>2</asp:ListItem>
                            <asp:ListItem>3</asp:ListItem>
                            <asp:ListItem>4</asp:ListItem>
                            <asp:ListItem>5</asp:ListItem>
                            <asp:ListItem>6</asp:ListItem>
                            <asp:ListItem>7</asp:ListItem>
                            <asp:ListItem>8</asp:ListItem>
                            <asp:ListItem>9</asp:ListItem>
                        </asp:DropDownList>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="ddlTotalTime"
                                    ErrorMessage="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
                            </ItemTemplate>
                            <FooterStyle HorizontalAlign="Right" />
                            <FooterTemplate>
                                <asp:Button ID="ButtonAdd" runat="server" Text="Add New Row" OnClick="ButtonAdd_Click" />
                            </FooterTemplate>
                        </asp:TemplateField>
                    <asp:CommandField ShowDeleteButton="True" />
                    </Columns>              
                </asp:GridView>
Run Code Online (Sandbox Code Playgroud)

JW *_*Lim 5

这就是ValidationGroup物业的用途。假设您有以下控件:

<asp:RequiredFieldValidator ID="rfv1" runat="server" ValidationGroup="Group1" />
<asp:RequiredFieldValidator ID="rfv2" runat="server" ValidationGroup="Group1" />
<asp:RequiredFieldValidator ID="rfv3" runat="server" ValidationGroup="Group2" />

<asp:Button ID="btn1" runat="server" ValidationGroup="Group1" Text="Button 1" />
<asp:Button ID="btn2" runat="server" ValidationGroup="Group2" Text="Button 2" />
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,btn1只会对由rfv1和验证的控件进行验证rfv2,而btn2只会对由 验证的控件进行验证rfv3