我无法在gridview中编辑

时间:2013-02-24 00:53:27

标签: asp.net entity-framework gridview

我正在使用linq到实体我添加了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>

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

1 个答案:

答案 0 :(得分: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>