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

时间:2012-03-19 02:34:30

标签: c# asp.net c#-4.0

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

我正在尝试使这个通用,以便我可以使用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 个答案:

答案 0 :(得分:2)

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

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