2008-12-11 50 views
2

我最近开始研究一个项目,该项目在单个页面上有许多gridviews。在创建新记录的过程中,用户需要能够添加/删除/编辑这些GridView,然后在最后保存到数据库。这显然的问题是,没有数据源将数据绑定到数据库之后才写入数据库。将gridviews绑定到viewstate直到能够写入数据库

该数据代表1 ..关系,这就是为什么GridView数据不能写入数据库,直到父记录首先被创建。

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

有没有人有更好的方式来处理这种情况的任何建议,这似乎是一件普通的事情?

UPDATE:

记住这个数据需要遍布各地的回传。

回答

1

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

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

0

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