我正在使用objectdatasource在asp.net Web表单中处理主/详细gridview和detailsview。详细信息视图显示有关gridview中所选行的额外信息。当我对网格进行排序时,我希望在排序发生之前,当前选定的行在排序完成后保留在详细信息视图中。相反,每当我排序时,gridview都会自动选择新的第一行。
我发现了这个问题的部分解决方案。如果我设置WhateverGridview.SelectedIndex = -1 onsort并且值变为null。这使得它在排序后取消选择任何行。这会将详细信息视图留空。但是,我想要做的是保持选定的行不会使它无效。
那么,是否有人有一个很好的方法来保留所选值或阻止在排序事件触发后显示详细信息视图。
答案 0 :(得分:5)
您需要使用GridView.EnablePersistedSelection
属性。将此属性设置为true
。
将此属性设置为true
意味着GridView
将确保行的选择基于数据键值。
默认情况下,GridView根据索引进行行选择。这就是为什么在排序时,gridview根据索引选择行并丢失实际选定行的原因。