这就是我启动 ASP:Repeater 的方式:
var taskItemsList = new List<Task>();
taskItemsList = GenerateActiveList(); //generates 6 items
_taskItemsListSorted = from Task in taskItemsList
orderby Task.AssignedTo ascending , Task.DueDateTicks ascending
select Task;
taskRepeater.DataSource = _taskItemsListSorted;
taskRepeater.DataBind();
这就是我尝试让同一个中继器显示不同列表的方式(当用户单击按钮时,此代码运行):
taskRepeater.DataSource = null; taskRepeater.DataBind();
var taskItemsList = new List<Task>();
taskItemsList = GenerateInactiveList(); //generates 5 items
_taskItemsListSorted = from Task in taskItemsList
orderby Task.AssignedTo ascending , Task.DueDateTicks ascending
select Task;
taskRepeater.DataSource = _taskItemsListSorted;
taskRepeater.DataBind();
(请注意,在第二个代码部分中,使用了一个新函数来生成不同的列表。)
问题是Repeater 控件似乎仍然包含第一个代码部分中的项目。
第 2 节中的最后一个操作 taskRepeater.DataBind(); 使 ItemDataBound 函数触发 11 次,这表明最初生成的列表项仍以某种方式包含在转发器中。
关于我哪里出错的任何想法?