是的,ASP.NET GridView 控件支持數據編輯功能。您可以使用 GridView 的 EditItemTemplate
和 UpdateItemTemplate
模板來實現數據編輯。以下是一個簡單的示例,展示了如何在 GridView 中實現數據編輯功能:
AllowPaging
和 AllowSorting
屬性為 true
。<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True">
</asp:GridView>
DataSource
屬性中,設置數據源。這里我們使用一個 DataTable 作為數據源。<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" DataSourceID="SqlDataSource1">
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" SelectCommand="SELECT * FROM MyTable"></asp:SqlDataSource>
EditItemTemplate
和 UpdateItemTemplate
模板。這些模板用于定義編輯和更新數據時的界面。<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<%# Eval("ID") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("ID") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<%# Eval("Name") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" ShowUpdateButton="True" />
</Columns>
</asp:GridView>
DataKeyNames
屬性,以便在更新數據時獲取主鍵值。protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridView1.DataKeyNames = "ID";
}
}
RowUpdating
事件,以便在用戶提交更改時更新數據源。protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex]["ID"]);
string name = GridView1.Rows[e.RowIndex].FindControl("TextBox2").Text;
// 更新數據源的邏輯(例如使用 SQL 語句)
// ...
// 綁定更新后的數據源到 GridView
SqlDataSource1.SelectCommand = "SELECT * FROM MyTable WHERE ID=" + id;
GridView1.DataBind();
}
現在,當用戶點擊編輯按鈕時,GridView 會進入編輯模式,用戶可以修改數據。點擊更新按鈕后,GridView 會將更改提交到數據源,并更新相應的記錄。