阅读量:0
要在GridView中编辑指定列,需要进行以下步骤:
在GridView中设置AutoGenerateEditButton属性为true,以显示编辑按钮。
在GridView中定义TemplateField列。在TemplateField中,使用TextBox等控件来编辑指定列的数据。
在GridView的RowEditing事件中,通过e.NewEditIndex属性获取要编辑的行索引。
在GridView的RowDataBound事件中,根据行索引找到指定列的控件,并将其设置为可编辑状态。
以下是一个示例代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateEditButton="true" OnRowEditing="GridView1_RowEditing" OnRowDataBound="GridView1_RowDataBound"> <Columns> <asp:TemplateField HeaderText="列1"> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("Column1") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("Column1") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="列2"> <ItemTemplate> <asp:Label ID="Label2" runat="server" Text='<%# Eval("Column2") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("Column2") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; GridView1.DataBind(); } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow && GridView1.EditIndex == e.Row.RowIndex) { TextBox textBox1 = (TextBox)e.Row.FindControl("TextBox1"); TextBox textBox2 = (TextBox)e.Row.FindControl("TextBox2"); textBox1.Enabled = true; // 设置为可编辑状态 textBox2.Enabled = true; // 设置为可编辑状态 } }
在这个示例中,当点击GridView中的编辑按钮时,会触发GridView1_RowEditing事件,将编辑模式切换到指定行。在GridView1_RowDataBound事件中,根据行索引找到指定列的TextBox控件,并将其设置为可编辑状态。