asp.net – Listbox – InsertItemTemplate RequiredFieldValidator

Имам asp.net Listview и добавих 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 за операции за вмъкване в 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