编辑项目模板中的必填字段验证程序无效

时间:2015-05-29 17:37:22

标签: asp.net gridview

这是我的代码。我在asp.net中使用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>

3 个答案:

答案 0 :(得分:1)

什么触发了验证?我假设某种按钮?它有吗? ValidationGroup属性也设置为“a”?

答案 1 :(得分:0)

试试这个:

  <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>   

答案 2 :(得分:0)

总结一下,要使验证在编辑模板中起作用,您需要:

  1. 控件(例如TextBox)中的ValidationGroup
  2. 验证器中的相同ValidationGroup
  3. 按钮等中触发操作的同一ValidationGroup
  4. 在第3步的按钮等中
  5. CausesValidation =“ true”