我面對一個.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