使用DataSet设置的ASP.NET GridView无法编辑行

时间:2015-12-15 20:42:18

标签: c# asp.net gridview dataset aspxgridview

我遇到以下问题:

我所拥有的是一个使用SqlDataAdapter在我的数据库上运行查询的搜索功能。 然后我用:

DataSet ds = new DataSet();
dataAdapter.Fill(ds, "table title");
gridView1.DataSource = ds;
gridView1.DataBind();

我最初得到一个错误,然后我有一个dataSource和dataSourceId,所以我清除了以前使用的ID。代码工作,我可以搜索表,我的查询将返回行并更新表。问题是我希望它返回的数据是可编辑的。我的网格视图是可编辑的,在运行查询之前,我可以编辑表的行。但是在运行搜索后,gridView充满了我的DataSet,我无法更新行。如果我单击编辑按钮,它会给出一个错误,指出RowEditing事件未被处理。

我调查了那个事件,并了解发生了什么,如果我要在RowEditing / RowUpdating / RowUpdated等事件中编程。我可以让它工作,但没有更好的方法来做到这一点?有没有更简单的方法在C#中设置我的dataSource并能够保持行的可编辑性?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我想你想问的部分问题是什么?我想你正在寻找一个SaveDataChanges()方法,它带来了一些设计问题。一个是你必须记住网页是无状态的,所以在某种程度上你的网页帖子不知道它刚被拉到并绑定到UI的数据。一轮中的网格视图控件可以很好地让用户在这里帮助你,并点击他们修改过的行上的更新。有了这个,您就拥有了事件处理程序,您可以专注于已经更改的数据,只需发送一个UPDATE语句。