【问题标题】:Gridview Automatically Selects first Row after a sortGridview在排序后自动选择第一行
【发布时间】:2013-12-12 21:54:21
【问题描述】:

我正在使用 objectdatasource 处理 asp.net Web 表单中的主/详细网格视图和详细信息视图。详细信息视图显示有关网格视图中所选行的额外信息。当我对网格进行排序时,我希望在排序发生之前当前选定的行在排序完成后保留在详细信息视图中。相反,当我排序时,gridview 会自动选择新的第一行。

我找到了这个问题的部分解决方案。如果我设置 WhatGridview.SelectedIndex= -1 onsort 并且值变为空。这使它在排序后取消选择任何行。这会将详细信息视图留空。但是,我想要做的是保持所选行不使其无效。

那么,有没有人有一个好的方法来保留所选值或防止在排序事件触发后显示详细信息视图。

【问题讨论】:

  • 存储当前Value,排序后设置Selected
  • 这不起作用,因为当触发排序时整个选定的索引会反转。
  • 你在gridview上使用pager吗?
  • 在排序前获取 viewState 中的 SelectedIndex 值,并在排序后将 ViewState 值传递给选定的索引。即 gridvw.SelectedIndex= ViewState("temp")

标签: c# asp.net sorting gridview


【解决方案1】:

这里您需要使用GridView.EnablePersistedSelection 属性。将此属性设置为true

将此属性设置为true 意味着GridView 将确保行的选择基于数据键值。

默认情况下,GridView 根据索引进行行选择。这就是为什么当您排序时,gridview 会根据索引选择行,而您会丢失实际选择的行。

【讨论】:

  • 感谢这正是我所需要的。我预计解决方案会复杂得多。有人应该为我投票给这个人。
猜你喜欢
  • 2018-01-29
  • 2011-11-27
  • 1970-01-01
  • 2018-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-26
相关资源
最近更新 更多