asp.net — список — InsertItemTemplate RequiredFieldValidator

У меня есть список asp.net, и я добавил RequiredFieldValidator для операций редактирования в EditItemTemplate.

Когда я нажимаю кнопку "Изменить" и пытаюсь сохранить данные с пустым полем CustomerNameTextBox, я получаю сообщение об ошибке "Пожалуйста, введите свое имя!"
Это нормально

<%@ Page Language="C#" UnobtrusiveValidationMode="None" AutoEventWireup="true" CodeBehind="frmMain.aspx.cs" Inherits="DB_mit_GridView.frmMain" %>

<EditItemTemplate>
    <tr style="">
        <td>
            <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />
            <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
        </td>
        <td>
            <asp:Label ID="CustomerIDLabel1" runat="server" Text='<%# Eval("CustomerID") %>' />
        </td>
        <td>
            <asp:TextBox ID="CustomerNameTextBox" runat="server" Text='<%# Bind("CustomerName") %>' />
            <%-- CustomerNameTextBox must not be empty when editing an existing record
            <asp:RequiredFieldValidator runat="server" id="reqName" controltovalidate="CustomerNameTextBox" errormessage="Please enter your name!" />
        </td>

Но я хочу проверять наличие пустого поля CustomerNameTextBox не только при редактировании существующей записи, но и при вставке новой записи.
Поэтому я добавляю RequiredFieldValidator для операций Insert в InsertItemTemplate :

<InsertItemTemplate>
    <tr style="">
        <td>
            <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" />
            <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Clear" />
        </td>
        <td>
            <asp:TextBox ID="CustomerIDTextBox" runat="server" Text='<%# Bind("CustomerID") %>' />
        </td>
        <td>
            <asp:TextBox ID="CustomerNameTextBox" runat="server" Text='<%# Bind("CustomerName") %>' />
            <%-- CustomerNameTextBox must not be empty when insertig a new record
            <asp:RequiredFieldValidator runat="server" id="reqName2" controltovalidate="CustomerNameTextBox" errormessage="Please enter your name!" />
        </td                    

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

Итак, как я могу убедиться, что определенные текстовые поля не пусты при редактировании или вставке? (у меня нет кода)


person Spacewalker    schedule 13.06.2016    source источник


Ответы (1)


Вы можете добавить группу проверки для всех текстовых полей и для кнопки «Вставить».

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.basevalidator.validationgroup(v=vs.110).aspx

person charan tej    schedule 13.06.2016
comment
Если я правильно понял статью, тогда группа проверки будет использовать обратную передачу? Есть ли способ сделать проверку на стороне клиента? - person Spacewalker; 13.06.2016