c# - 具有自动生成列的可编辑 GridView

标签 c# asp.net c#-4.0

我正在尝试制作一个非常简单的 asp.net 页面,该页面使用具有可编辑行的 Linq2SQL 绑定(bind) GridView。我基本上想添加 2 个 ButtonFields,“编辑”和“删除”。单击“删除”时,该行将被删除,单击“编辑”时,每个自动生成的列都会变成文本框并且可编辑,并且会出现一个新按钮“保存”。单击“保存”按钮后,页面将重新加载,编辑的条目也会在数据库中更新。我并不真正担心错误检查或任何花哨的事情,我只是想要一种快速编辑表格的方法。

我正在尝试使其通用,以便我可以使用 DropDownList 编辑任何表格:

grd.DataSource = db.GetTable(ddlTable.SelectedItem.Text);
grd.DataBind();

<asp:GridView id="grd">
<Columns>
<asp:ButtonField id="edit" Text="Edit"/>
<asp:ButtonField id="delete" Text="Delete"/>
</Columns>
</GridView>

我想我有两个主要问题:

1) 是否可以使用 AutoGenerateColumns="true"来执行此操作,以便每个表都可以编辑,而不必为每个表进行硬编码?

2) 是否有一种直接的方法可以使用内置的 GridView 事件来执行此操作,而无需编写自定义控件?我并不反对最终使用自定义控件,但如果有必要,我想自己编写;我现在正在努力避免这种情况。

最佳答案

1) GridView 具有“AutoGenerateDeleteButton”和“AutoGenerateEditButton”属性,您可以将其设置为 true。

2) 使用数据源(可能是 LinqDataSource)绑定(bind)网格。通过这种方式,您可以直接从模型中指定编辑和删除事件中发生的情况。它还将为您提供内置的分页/排序。

关于c# - 具有自动生成列的可编辑 GridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9764294/

相关文章:

c# - 迁移到.net core 3.1后EF OrderBy出现问题

c# - 如何在 C# 中将文件存储在共享网络驱动器上

asp.net-mvc - MVC 枚举单选按钮必填字段

c# - C#泛型类中的协变

c# - CS0019 运算符不能应用于类型为 'bool' 和 'int' 的操作数

c# - 两个应用程序之间的声音交互

c# - Silverlight:在页面之间传递复杂对象

asp.net - 使用 ASP.NET 而非 MVC 的 Twitter Bootstrap

c# - 按钮的单个 onclick 事件如何执行 2 个操作

linq - ef cf linq 填充被忽略的属性