编辑项模板中的必填字段验证器不起作用

Required Field validator in edit item template is not working

这是我的 code.I 我正在 asp.net.I 中使用 gridview 我正在尝试将 requiredfieldvalidator 添加到

textbox_id

在 gridview 编辑模式下,但即使我没有在文本框中放置任何内容并单击更新也没有任何反应。

 <Columns>


            <asp:BoundField DataField="StudentId" HeaderText="Student_ID" />
            <asp:TemplateField HeaderText="ID">
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox_id" runat="server" Wrap="False" CausesValidation="true" ValidationGroup="a"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ValidationGroup="a"  runat="server" ControlToValidate="TextBox_id" ErrorMessage="RequiredField" ForeColor="Red"></asp:RequiredFieldValidator>

                     </EditItemTemplate>
                <%--<ItemTemplate>
                    <asp:Label ID="Label3" runat="server"></asp:Label>
                </ItemTemplate>--%>
            </asp:TemplateField>

触发验证的按钮应该有 ValidationGroup 属性也设置为“a”。

试试这个:

  <asp:TemplateField HeaderText="Popolazione residente"
    SortExpression="InhabitantsNum">
    <EditItemTemplate>
        <itemtemplate>
            <%# DataBinder.Eval(Container.DataItem,"InhabitantsNum") %>
        </itemtemplate>
        <asp:TextBox ID="InsertPopolazioneResidente" runat="server"
            Text='<%# Bind("InhabitantsNum") %>'></asp:TextBox>
        <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
            ErrorMessage="Inserire un numero positivo" ValidationExpression="^[0-9]+$" ForeColor="Red" ControlToValidate="InsertPopolazioneResidente"></asp:RegularExpressionValidator>

    </EditItemTemplate>
    <ItemTemplate>
        <asp:Label ID="InsertPopolazioneResidente" runat="server"
            Text='<%# Bind("InhabitantsNum") %>'></asp:Label>

    </ItemTemplate>
</asp:TemplateField>   

总而言之,要在编辑模板中进行验证,您需要:

  1. 控件中的 ValidationGroup(例如 TextBox)
  2. Validator中相同的ValidationGroup
  3. 触发操作的按钮等中的相同 ValidationGroup
  4. 步骤 3 中按钮等中的 CausesValidation="true"