2014-10-30 4 views
0

Мы используем панель Ajax Accordion. Мы динамически привязываем ajax-аккордеон от набора данных. Поэтому мы не уверены, сколько области будет связывать.Обязательный полевой валидатор в Ajax Accordion Pane не работает

Теперь мы добавили несколько текстовых полей и 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> 

ответ

1

Вы должны упомянуть ValidationGroup для каждого текстового поля и кнопок, как вы являетесь обязательными для аккордеона во время выполнения, поэтому необходимо связать ValidationGroup во время выполнения с некоторым свойством, что имеет уникальное/различное значение для каждого Accordian. Допустим, вы привязываете аккордеон к строкам групп, тогда вы можете указать groupId в ValidationGroup. Обновленный код должны выглядит так:

<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 и нажав на кнопке не будет срабатывать валидатор в других аккордеонах

Смежные вопросы