是的,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 会将更改提交到数据源,并更新相应的记录。