将gridview绑定到viewstate,直到能够写入数据库

时间:2008-12-11 00:55:28

标签: asp.net gridview viewstate

我最近开始研究一个在单个页面上有很多网格视图的项目。在创建新记录期间,用户需要能够添加/删除/编辑这些网格视图,然后在最后保存到数据库。显而易见的问题是,在将数据写入数据库之前,没有数据源可以绑定数据。

此数据表示1 .. *关系,这就是为什么在首先创建父记录之前无法将gridview数据写入数据库的原因。

到目前为止,我找到解决此问题的最佳方法是使用viewstate。然而,这个解决方案对我来说似乎并不理想。我还被迫使用OnDeleting,OnUpdating等手动创建gridview功能,以便我可以管理viewstate与gridview的绑定。

有没有人对更好的方法来管理这种情况有任何建议,看起来这是常见的事情?

更新:

请记住,这些数据需要在整个回发中发挥作用。

2 个答案:

答案 0 :(得分:1)

使用DataSet作为数据源的中间连接。使用您的数据填充DataSet,然后将GridView绑定到DataSet,将GridView DataMember设置为它应绑定到的表的名称。

当用户更新表时,它将在DataSet中的DataTables中添加/修改记录。当用户完成编辑并单击“保存”后,您的代码可以从数据集更新数据库,或者使用DataAdapter自动更新,或者手动查看DataTables中行的RowState。

答案 1 :(得分:0)

使用DataAdapter和数据集。在适配器中调用fillschema方法以在数据集中创建de元数据(cols,约束,关系等)。将创建的数据表绑定到不同的网格视图。手动更新每个表上的每一行rowstate或调用适配器的更新方法自动执行。如果您自动执行此操作,则需要在适配器中定义插入,删除和更新命令。