如何使gridview的所有行都可编辑

avatar
作者
猴君
阅读量:1

要使GridView的所有行都可编辑,可以按照以下步骤操作:

  1. 设置GridView的属性AutoGenerateEditButtontrue,以便在每一行的末尾自动生成一个编辑按钮。
<asp:GridView ID="GridView1" runat="server" AutoGenerateEditButton="true"> ... </asp:GridView> 
  1. 在GridView的RowEditing事件中,将GridView.EditIndex属性设置为当前编辑行的索引,以便启用编辑模式。
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; // 重新绑定数据源 BindGridView(); } 
  1. 在GridView的RowUpdating事件中,取消编辑模式,并保存更新后的数据。
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { // 取消编辑模式 GridView1.EditIndex = -1; // 获取更新后的数据并保存 TextBox txtName = GridView1.Rows[e.RowIndex].FindControl("txtName") as TextBox; TextBox txtAge = GridView1.Rows[e.RowIndex].FindControl("txtAge") as TextBox; // 更新数据 // SaveData(txtName.Text, txtAge.Text); // 重新绑定数据源 BindGridView(); } 
  1. 在GridView的RowCancelingEdit事件中,取消编辑模式。
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; // 重新绑定数据源 BindGridView(); } 
  1. 在每一列的ItemTemplate中,添加适当的控件(如TextBox、DropDownList等)以显示和编辑数据。
<asp:TemplateField HeaderText="Name"> <ItemTemplate> <%# Eval("Name") %> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtName" runat="server" Text='<%# Eval("Name") %>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> 
  1. 在代码中,重新绑定GridView的数据源。
protected void BindGridView() { // 获取数据源 // List<MyData> data = GetData(); // 绑定数据源 // GridView1.DataSource = data; // GridView1.DataBind(); } 

以上是一种常用的实现方式,你可以根据自己的需求进行适当的修改和调整。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!