我面对一个.aspx页面的奇怪行为。我有DataList MyDataList
。我需要有条件地突出显示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
事件(例如,MyDataList_ItemCreated
),它工作正常(如上所示)。
如果我提供代码以突出显示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;
}
}
}
我该如何解决这个问题,使计时器继续更新?
因为我在Timer1_Tick中放置了BreakPoints并且看不到任何操作,所以在第二种情况下Timer事件根本没有触发。 – 2010-02-15 22:20:59
@Asad Butt - 查看我答案的最后一句(我修改了它)。看起来你对如何执行客户端更新有错误的想法。 – casperOne 2010-02-15 22:28:18