Ajax Accordion窗格中所需的字段验证器不工作

本文关键字:验证 字段 工作 Accordion Ajax | 更新日期: 2023-09-27 18:28:19

我们使用Ajax Accordion窗格。我们从数据集中动态绑定ajax手风琴。所以我们不确定有多少窗格会被绑定。

现在,我们在每个手风琴窗格中添加了几个文本框和一个按钮,这是mandotory,所以我们使用了所需的字段验证器。

问题是当我点击第一个窗格中的按钮时,第一个窗格的文本框显示"It is required",这很好,但即使我在第一个窗格键入了文本框。我无法保存,因为剩余窗格中的文本框显示"It is required"。请引导我。

<cc1:Accordion ID="accRcvDetails" runat="server" SelectedIndex="-1" ContentCssClass="accordion-content" RequireOpenedPane="false" HeaderCssClass="accordion-header" 
                                     HeaderSelectedCssClass="accordionSelected" OnItemCommand="accRcvDetails_ItemCommand" OnItemDataBound="accRcvDetails_ItemDataBound">
                                     <HeaderTemplate>
     </HeaderTemplate>
                                     <ContentTemplate>
    <td class="searchlabel">
                                                         <asp:Label ID="lblNotes" runat="server" Text="Notes:"></asp:Label>
                                                     </td>
                                                     <td class="searchtext" colspan="3">
                                                         <asp:TextBox runat="server" ID="txtNotes" Width="100%" TextMode="MultiLine" Height="35px" />
                                                         <asp:RequiredFieldValidator ControlToValidate="txtNotes" Text="Note Field is Required" runat="server" />
                                                     </td>
                                                     <td>
     <td style="text-align: right" colspan="8">
                                                         <asp:Button ID="btnSave" CssClass="searchbutton Accbtnsave" runat="server" CommandName="Save" Text="Save" />
                                                     </td>
 </ContentTemplate>

                                 </cc1:Accordion>

Ajax Accordion窗格中所需的字段验证器不工作

您需要为每个文本框和按钮提到ValidationGroup,因为您在运行时绑定手风琴,所以需要在运行时将ValidationGroup与每个手风琴具有唯一/不同值的一些属性绑定。假设您正在将手风琴与成组的行绑定,那么您可以在ValidationGroup中提及groupId。您更新的代码必须看起来相似:

 <asp:RequiredFieldValidator ControlToValidate="txtNotes" Text="Note Field is Required" runat="server" ValidationGroup='<%# Eval("GroupId") %>'/>
 <asp:Button ID="btnSave" CssClass="searchbutton Accbtnsave" runat="server" CommandName="Save" Text="Save" ValidationGroup='<%# Eval("GroupId") %>'/>

这样,每个手风琴都有自己的ValidationGroup,点击按钮不会触发其他手风琴中的验证器