要使GridView的所有行都可编辑,可以按照以下步骤操作:
设置GridView的属性AutoGenerateEditButton为true,以便在每一行的末尾自动生成一个编辑按钮。<asp:GridView ID="GridView1" runat="server" AutoGenerateEditButton="true">...</asp:GridView>在GridView的RowEditing事件中,将GridView.EditIndex属性设置为当前编辑行的索引,以便启用编辑模式。protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e){GridView1.EditIndex = e.NewEditIndex;// 重新绑定数据源BindGridView();}在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();}在GridView的RowCancelingEdit事件中,取消编辑模式。protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e){GridView1.EditIndex = -1;// 重新绑定数据源BindGridView();}在每一列的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>在代码中,重新绑定GridView的数据源。protected void BindGridView(){// 获取数据源// List<MyData> data = GetData();// 绑定数据源// GridView1.DataSource = data;// GridView1.DataBind();}以上是一种常用的实现方式,你可以根据自己的需求进行适当的修改和调整。