要使GridView的所有行都可編輯,可以按照以下步驟操作:
AutoGenerateEditButton
為true
,以便在每一行的末尾自動生成一個編輯按鈕。<asp:GridView ID="GridView1" runat="server" AutoGenerateEditButton="true">
...
</asp:GridView>
RowEditing
事件中,將GridView.EditIndex
屬性設置為當前編輯行的索引,以便啟用編輯模式。protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
// 重新綁定數據源
BindGridView();
}
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();
}
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>
protected void BindGridView()
{
// 獲取數據源
// List<MyData> data = GetData();
// 綁定數據源
// GridView1.DataSource = data;
// GridView1.DataBind();
}
以上是一種常用的實現方式,你可以根據自己的需求進行適當的修改和調整。