0

我有一个当前绑定到 ObjectDataSource 的 asp ListView。ObjectDataSource 的 select 方法有一个与隐藏标签绑定的参数。因此,要清除我的 ListView,我只需将隐藏标签的文本属性设置为 string.Empty 并绑定 ListView 的数据。这很好用,但是如果用户单击我的 ListView<th>标签之一,它对 ListView 进行排序,然后单击“清除”按钮,它会抛出一个System.IndexOutOfRangeException: Cannot find column name.

这是唯一一次抛出这个异常,如果 ListView 在没有被排序的情况下被清除,那么一切都是笨拙的。

任何帮助表示赞赏

4

2 回答 2

0

在您的 Clear() 方法中,您是迭代还是使用特定的列名来删除项目?

于 2012-07-26T16:19:56.800 回答
0

我认为当标签为空白时,您的数据源什么也没有返回,甚至没有表模式。这将意味着您的 ListView 将没有数据,包括不知道列可能是什么。因此,当您告诉它对某个列进行排序时,它会抱怨它找不到该列。

我想两个最简单的修复方法是在清除排序列时删除它,或者确保 ListView 始终知道它至少有哪些列。

于 2012-07-26T16:28:11.397 回答