【发布时间】:2011-01-17 04:16:22
【问题描述】:
我正面临 .aspx 页面的奇怪行为。
我有一个名为 MyDataList 的 DataList。我需要有条件地突出显示 DataList 的行,具体取决于数据中的任意值,例如 Date 字段是否小于 SomeDate。
我正在使用 UpdatePanel、ScriptManager 和计时器(都是 AJAX)来刷新 MyDataList。
protected void Timer1_Tick(object sender, EventArgs e)
{
MyDataList.DataBind();
}
protected void MyDataList_ItemCreated(object sender, DataListItemEventArgs e)
{
}
问题:
如果我为ItemCreated 事件(EG,MyDataList_ItemCreated)添加一个 empty 事件处理程序,它可以正常工作(如上所示)。
如果我提供代码以突出显示 ItemCreated 事件处理程序中的值(如下所示),则计时器停止计时,并且事件 Timer1_Tick 不再触发。
protected void DataListBgArticles_ItemCreated(object sender,
DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
Product product = (Product)e.Item.DataItem;
if (product.SaleDate > DateTime.Now.AddDays(-2))
{
e.Item.BackColor = Color.Pink;
}
}
}
如何解决此问题,以便计时器继续更新?
【问题讨论】: