Ajax手风琴窗格中的必填字段验证器不起作用

时间:2014-10-30 07:26:04

标签: c# asp.net ajax c#-4.0 asp.net-ajax

我们使用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>

1 个答案:

答案 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,单击按钮不会触发其他手风琴中的验证器