Средство проверки обязательных полей запускается при повторном запуске

#asp.net #triggers #drop-down-menu #postback #requiredfieldvalidator

#asp.net #запускает #выпадающее меню #обратная отправка #requiredfieldvalidator

Вопрос:

У меня есть выпадающий список на моей странице aspx, к которому у меня применен RequiredFieldValidator поверх него. Выпадающий код является:

 <asp:DropDownList ID="ddlglCategoryId" runat="server" CssClass="textEntry2" 
                                            AutoPostBack="true" ValidationGroup="Save" DataSourceID="dtsglCategoryId" DataTextField="LookupItem"
                                            DataValueField="Id" AppendDataBoundItems="true">
                                            <asp:ListItem Text="All" Selected="True" Value="0"></asp:ListItem>
                                        </asp:DropDownList>
  

Код RequiredFieldValidator является:

 <asp:RequiredFieldValidator ID="rfvddlglCategoryId" InitialValue="0" runat="server"
                                            ErrorMessage="Please select category" CssClass="Validations" ControlToValidate="ddlglCategoryId"
                                            ValidationGroup="Save" Display="Dynamic" SetFocusOnError="true">
                                        </asp:RequiredFieldValidator>
  

У меня также есть триггер обратной отправки на моей странице aspx, и когда я меняю категорию из выпадающего списка, страница отправляется обратно, и сетка на моей странице обновляется. Но из-за обратной отправки сообщение средства проверки появляется, а затем исчезает. Я хочу, чтобы это отображалось только тогда, когда «Все» выбрано из выпадающего списка и пользователь нажимает кнопку Сохранить.

Какие-либо рекомендации?

Запуск:

 </ContentTemplate>
    <Triggers>
        <%--<asp:AsyncPostBackTrigger ControlID="lbFileName" />--%>
        <asp:PostBackTrigger ControlID="btnFileUploadSave" />
    </Triggers>
</asp:UpdatePanel>
  

Кнопка:

 <asp:ImageButton ID="btnFileUploadSave" runat="server" ValidationGroup="Save"
                                                                        ImageUrl="~/App_Themes/Default/images/update.png" ToolTip="Save"  
                                                                        Height="18px" onclick="btnFileUploadSave_Click"/>
  

Комментарии:

1. Возможно, вы захотите обновить свой пост с более полным представлением вашей разметки, чтобы показать триггеры и показать, что кнопка отправки использует то же самое ValidationGroup .

Ответ №1:

Возможно, вам потребуется установить для свойства AutoPostBack выпадающего списка значение false. Похоже, что обратная отправка запускается обработчиком события OnSelectedIndexChanged.

Ответ №2:

Установите свойство ValidationGroup для всех валидаторов одинаковым, которое вы хотите проверять при нажатии кнопки, а затем установите свойство buttons ValidationGroup таким же, как у ваших валидаторов

Например:

 <asp:RequiredFieldValidator ID="rfvDoc" runat="server" ControlToValidate="FileUpload1"
                    ErrorMessage="Please Select A Document" ValidationGroup="OnSave">
</asp:RequiredFieldValidator>