无法为ASP:Repeater清除项目
本文关键字:Repeater 清除 项目 ASP | 更新日期: 2023-09-27 18:05:21
这是我如何启动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次,这表明最初生成的列表项仍以某种方式包含在repeater中。
你知道我哪里做错了吗?
唯一的问题是OnClick事件正在启动,做你想做的事情,但之后页面OnLoad正在启动并将内容替换为原始内容。要解决这个问题,只需在页面OnLoad:
中进行修改if (!IsPostBack)
// Bind the repeater
在调用第2节代码之前,请这样做,
DataTable dt = new DataTable();
taskRepeater.DataSource = dt;
taskRepeater.DataBind();