繁体   English   中英

objectdatasource将gridview数据源转换回通用列表

[英]objectdatasource cast gridview datasource back to generic list

环境:asp.net fx3.5

我正在为gridview使用objectdatasource。 首先,我使用来自我的客户的通用List<Attachments>记录加载我的gridview。 接下来,我想在gridview中添加/删除项目,而不是在完成所有添加/删除之后才会访问数据库。 然后用户将点击“保存”按钮,然后我将在gridview中保留这些项目。

我的问题是,当objectdatasource连接到gridview时,如何在gridview中添加/删除项目? 我的猜测是以某种方式将gridview行转换回通用列表,添加/删除项目,并重新绑定? 这甚至可能吗?

如果你正在做或者可以在添加/删除时进行回发,我建议保存对数据库的更改。 由于不沿更改保存数据可能会导致信息丢失。 您可以使用ajax调用进行添加/删除,以使其更加优雅和快速,而无需重新加载整个页面。

要么

如果要在客户端进行所有添加/删除并最终保存到数据库,则可以使用客户端存储暂时保留更改,最后将更改发送回服务器并将其提交到数据库。 有关客户端存储的文章但旧浏览器可能不支持

要么

您可以在隐藏字段中进行更改,例如对于已删除的记录,您有一个隐藏字段存储已删除的记录ID,隐藏字段上添加了具有设置模式的记录,并使用这些隐藏字段再次更新回发数据库存在丢失信息的危险方法

您可以临时存储在ViewState中。 您需要有一个提供程序类,即对您在视图状态中存储的列表执行基本CRUD操作的类。

由于您只是使用网格事件来存储所有这些信息以进行处理,因此您在数据源中唯一需要的是select方法,这样它就不会尝试更新/插入记录。 您可以在rowCommand事件上执行所有事件处理。

至于你在尝试什么,我认为这不是一个好主意。 您必须在会话中跟踪多个记录,或者单独的数据库表(但那么重点是什么?)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM