我们使用Ajax Accordion面板。我们从数据集动态绑定ajax手风琴。所以我们不确定将会绑定多少窗格。
现在我们在每个手风琴窗格中添加了几个文本框和1个按钮,这是mandotory所以我们使用了必需的字段验证器。
问题是当我在第一个窗格中的第一个窗格文本框中单击按钮时显示“它是必需的”,这很好但即使我在第一个窗格中键入文本框。我无法在显示“必须”的剩余窗格中保存文本框。请指导我。
<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>
答案 0 :(得分:1)
您需要为每个文本框和按钮提及ValidationGroup,因为您在运行时绑定了accordion,因此需要在运行时将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,单击按钮不会触发其他手风琴中的验证器