我正在一个工作门户网站上,用户可以在其中输入多个配置文件。
我在gridview中显示所有配置文件。我现在的要求是 应该有一个状态链接与他的所有配置文件(它在位)。
示例: 这是我的gridview:
jobseekerid | Profileid | status
1 2 Active
1 3 DeActive
1 4 DeActive
....
....
从这一切中,只有一个配置文件可以处于活动状态。 因此,当用户点击任何非活动的配置文件时,它将变为活动状态,然后全部 剩余的个人资料将变为无效 条件是一次只能有一个配置文件处于活动状态。 (当他使一个配置文件处于活动状态时,其余配置文件将自动变为非活动状态。)
现在的问题是,当用户在网格视图中激活配置文件时,我无法使所有剩余的配置文件处于非活动状态。
我该怎么做?
答案 0 :(得分:0)
这是一个常见问题,通常通过保留填充gridview的原始数据集来解决。因此,在您的情况下,您应该在视图状态中存储数据集(或配置文件列表 - 您用于填充网格视图的任何数据集)(假设它不是太大,否则页面将加载缓慢)。然后,当您填充gridview时,您需要为每个click事件分配一个配置文件ID,以便您知道哪一个被点击了。然后,您需要遍历在视图状态中保存的数据集,并将所有这些数据集(刚刚单击的数据集)更新为非活动状态。循环不像它听起来那么笨拙......在sql server 2005和2008中,你有一个名为'table'的新数据类型,所以你可以将所有其他的profileIDs一举传递给DB,将它们全部更新为非活动状态。
答案 1 :(得分:0)
更新后,循环遍历Gridview的表行并相应地更改值,如果这足以更新后端中的记录。如果存在与之关联的值,则可以将该值保存在隐藏字段中,并更改隐藏字段中的值。
如果这些更改即将发生(即您在更改时更新数据库),您可以将隐藏字段设置为回发触发器,并在您单击任何正在保存的按钮时将其设置为eval()更新状态的更新记录。这将导致RowCommand触发,您可以在其中遍历每个记录并相应地更新。