【问题标题】:How to change a status of a button in gridview如何在gridview中更改按钮的状态
【发布时间】:2011-04-21 10:50:49
【问题描述】:

我正在开发一个工作门户网站,用户可以在该网站上输入多个个人资料。

我在网格视图中显示所有配置文件。我现在的要求是 他的所有个人资料都应该有一个状态链接(它是位)。

示例: 这是我的网格视图:

jobseekerid | Profileid | status

     1           2        Active
     1           3        DeActive
     1           4        DeActive
            ....
            ....

在所有这些中,只有一个配置文件可以处于活动状态。 因此,当用户点击任何非活动配置文件时,它将变为活动状态,然后全部 剩余的个人资料将变为非活动状态。 条件是一次只能激活一个配置文件。 (当他激活他的一个配置文件时,其余的将自动变为非活动状态。)

现在的问题是,当用户在 gridview 中激活配置文件时,我无法使所有剩余的配置文件处于非活动状态。

我该怎么做?

【问题讨论】:

  • 你想改变状态客户端(即使用java-script或JQuery)吗?
  • 您能否提供您的代码,以便在用户激活配置文件时让剩余的配置文件处于非活动状态?
  • Sukhi 你是对的,它应该通过 Java 脚本或 jquery 来完成,这应该在 ajax 调用的帮助下直接反映在客户端。

标签: asp.net sql-server


【解决方案1】:

这是一个常见问题,通常可以通过保留填充 gridview 的原始数据集来解决。因此,在您的情况下,您应该将数据集(或配置文件列表 - 您用于填充 gridview 的任何数据集)存储在视图状态中(假设它不是太大,否则页面加载速度会很慢)。然后,当您填充您的网格视图时,您需要为每个点击事件分配一个配置文件 ID,以便您知道点击了哪个事件。然后,您需要遍历保存在视图状态中的数据集,并将所有数据集(除了刚刚单击的数据集)更新为非活动状态。循环并不像听起来那么复杂……使用 sql server 2005 和 2008,您有一个名为“表”的新数据类型,因此您可以一举将所有其他 profileID 传递给数据库,以将它们全部更新为非活动状态。

【讨论】:

    【解决方案2】:

    更新时,遍历 Gridview 的表行并相应地更改值,如果这足以更新后端中的记录。如果有与之关联的值,您可以将该值保存在隐藏字段中,并更改隐藏字段中的值。

    如果这些更改将即时发生(即您在更改时更新数据库),您可以将隐藏字段设置为回发触发器,并在您单击正在保存的任何按钮时对其进行 eval()更新状态的更新记录。这将导致 RowCommand 触发,您可以在其中循环遍历每条记录并进行相应更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      • 2021-01-17
      • 2020-05-25
      • 2021-08-09
      相关资源
      最近更新 更多