我使用 List<> 作为从数据库返回的一些数据的容器,如下所示:
List<BookInfo> result {get;set;}
protected void SearchButton_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
result = (new BookInfo()).Search(TextBox1.Text);
ListView1.DataSource = result;
ListView1.DataBind();
}
}
一切正常。但是当我试图在其他事件中对这个列表进行排序时,它是空的。
protected void ListView1_Sorting(object sender, ListViewSortEventArgs e)
{
IComparer<BookInfo> comparer = new BookInfoOrdering();
if (result != null)
{
result.Sort(comparer);
}
ListView1.DataSource = result;
ListView1.DataBind();
}
我只是想知道为什么会这样。一种解决方案是调用搜索方法并再次获取数据,但不是没有必要吗?