Возникает событие обновления Gridview, хотя данные недопустимы в элементах управления - PullRequest
0 голосов
/ 16 августа 2011

У меня есть поле команд и несколько полей шаблонов.К полям шаблона прикреплены валидаторы, и они показывают правильные сообщения, когда выбраны неправильные данные.Однако, когда я нажимаю поле команды, ошибка не отображается, и событие запускается, даже если данные недействительны.Более того, я также проверил Page.IsValid на сервере, и все работает хорошо, хотя данные в недопустимом состоянии.Это разметка:

<asp:TemplateField HeaderText="Exp. Date">
    <ItemTemplate>
        <asp:Label ID="lblExpiration" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Expiration")%>'></asp:Label>
    </ItemTemplate>
    <EditItemTemplate  >
        <asp:DropDownList ID="ddlMM" runat="server" ValidationGroup="vgExpDateGrid">
            <asp:ListItem Value="-1">MM</asp:ListItem>
            <asp:ListItem Value="1" >01</asp:ListItem>
            <asp:ListItem Value="2">02</asp:ListItem>
            <asp:ListItem Value="3">03</asp:ListItem>
            <asp:ListItem Value="4">04</asp:ListItem>
            <asp:ListItem Value="5">05</asp:ListItem>
            <asp:ListItem Value="6">06</asp:ListItem>
            <asp:ListItem Value="7">07</asp:ListItem>
            <asp:ListItem Value="8">08</asp:ListItem>
            <asp:ListItem Value="9">09</asp:ListItem>
            <asp:ListItem Value="10">10</asp:ListItem>
            <asp:ListItem Value="11">11</asp:ListItem>
            <asp:ListItem Value="12">12</asp:ListItem>
        </asp:DropDownList>
        <span class="green"></span> /&nbsp;
        <asp:DropDownList ID="ddlYY" runat="server" ValidationGroup="vgExpDateGrid">
        </asp:DropDownList>
        <span class="green"></span>
         <asp:RequiredFieldValidator ID="rfvddlMM" ControlToValidate="ddlMM" Display="Dynamic" InitialValue="-1" runat="server" ValidationGroup="vgExpDateGrid">*</asp:RequiredFieldValidator>
         <asp:RequiredFieldValidator ID="rfvddlYY" ControlToValidate="ddlYY" Display="Dynamic" InitialValue="-1" runat="server" ValidationGroup="vgExpDateGrid">*</asp:RequiredFieldValidator>
    </EditItemTemplate>
</asp:TemplateField>

<asp:CommandField 
 UpdateText="Update" CausesValidation="true"
    HeaderText="Update" ShowEditButton="true" 
    EditText="Update <br/>Exp. Date" ButtonType="Link" />

Пожалуйста, не обращайте внимания на странные имена и стили элементов управления.В основном поле шаблона имеет выпадающие списки года и месяца.Раскрывающийся список Год заполняется в событии с привязкой к строке.Как видите, валидаторы подключены, но командное поле работает нормально.Кто-нибудь может сказать мне, в чем может быть проблема?

1 Ответ

1 голос
/ 16 августа 2011

На первый взгляд я бы сказал, что у вас нет ValidationGroup="vgExpDateGrid" на asp:CommandField. Измените ваше командное поле на:

<asp:CommandField ValidationGroup="vgExpDateGrid"
 UpdateText="Update" CausesValidation="true"
  HeaderText="Update" ShowEditButton="true" 
  EditText="Update <br/>Exp. Date" ButtonType="Link" />

или, альтернативно, удалите ValidationGroup из asp:RequiredFieldValidator

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...