【问题标题】:Required Field Validator in Ajax Accordion Pane is not workingAjax Accordion 窗格中的必需字段验证器不起作用
【发布时间】:2014-12-26 03:44:09
【问题描述】:

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

现在我们在每个手风琴窗格中添加了几个文本框和 1 个按钮,这是强制性的,因此我们使用了必填字段验证器。

问题是当我在第一个窗格的第一个窗格文本框中单击按钮时显示“它是必需的”,这很好,但即使我在第一个窗格中键入了文本框。我无法保存,因为剩余窗格中的文本框显示“它是必需的”。请指导我。

<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>

【问题讨论】:

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


    【解决方案1】:

    您需要为每个文本框和按钮提及 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,点击按钮不会触发其他手风琴中的验证器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-02
      • 2011-05-03
      • 1970-01-01
      • 2013-04-18
      • 1970-01-01
      • 2012-09-02
      相关资源
      最近更新 更多