0

我正在使用 linq to entity 我添加了 gridview 但它没有编辑,当我调试时它没有访问方法 GridView5_RowUpdating() .. 这是网格视图的代码

<asp:GridView ID="GridView5" runat="server" AllowSorting="True" 
            AutoGenerateColumns="False" CellPadding="4" DataKeyNames="CustomerId" 
            DataSourceID="SqlDataSource3" ForeColor="#333333" GridLines="None" 
            onrowupdating="GridView5_RowUpdating">
            <AlternatingRowStyle BackColor="White" />
            <Columns>
                <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
                <asp:BoundField DataField="CustomerId" HeaderText="CustomerId" 
                    InsertVisible="False" ReadOnly="True" SortExpression="CustomerId" />
                <asp:BoundField DataField="FirstName" HeaderText="FirstName" 
                    SortExpression="FirstName" />
                <asp:BoundField DataField="LastName" HeaderText="LastName" 
                    SortExpression="LastName" />
                <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
            </Columns>
            <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
            <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
            <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
            <SortedAscendingCellStyle BackColor="#FDF5AC" />
            <SortedAscendingHeaderStyle BackColor="#4D0000" />
            <SortedDescendingCellStyle BackColor="#FCF6C0" />
            <SortedDescendingHeaderStyle BackColor="#820000" />
        </asp:GridView>

当我删除必填字段验证器时尝试手动插入时,我有必填字段验证器有人可以告诉我发生了什么吗?

4

1 回答 1

0

首先你需要在gridview上实现RowEditing事件来启用编辑,MSDN定义:

在单击行的“编辑”按钮时发生,但在 GridView 控件进入编辑模式之前。

ASPX:

<asp:GridView 
        ID="gvCustomers" 
        runat="server" 
        OnRowEditing="gvCustomers_RowEditing">

后面的代码:

protected void gvCustomers_RowEditing(object sender, GridViewEditEventArgs e)
{
    gvCustomers.EditIndex = e.NewEditIndex;
    //Re bind the grid view
}

现在,如果当您单击网格视图上的编辑链接时没有触发此事件,则意味着页面上有一些验证逻辑阻止了回发。

摆脱这个问题的最好方法是设置ValidationGroup属性,因为验证控件会引起麻烦(不是gridview):

<div id="insertEmployee">
        <asp:TextBox ID="txtName" runat="server" ValidationGroup="Insert" />
        <asp:RequiredFieldValidator ID="rfvName" runat="server" ControlToValidate="txtName" ErrorMessage="Name is required" ValidationGroup="Insert" />
        <asp:Button ID="btnAdd" runat="server" Text="Add" ValidationGroup="Insert" />
    </div>
于 2013-02-24T12:56:12.413 回答