0
我已經在代碼隱藏下面簡單的事件處理程序:爲什麼網格視圖僅在第二個函數調用時更新?
public void changeBlock(string blockname)
{
IntraNetEntities ent = new IntraNetEntities();
var query = from x in ent.Mailings_blocked where x.blocked == blockname select x;
if (query.Count() == 0)
{
Mailings_blocked add = new Mailings_blocked();
add.blocked = blockname;
ent.AddToMailings_blocked(add);
}
else
{
Mailings_blocked del = ent.Mailings_blocked.Single(c => c.blocked == blockname);
ent.DeleteObject(del);
}
ent.SaveChanges();
updateStore();
Grid_Business.RefreshView();
Grid_Mailing.RefreshView();
}
但是,當事件被觸發,該數據庫被更新,就像商店,但RefreshView()不正確執行。當單擊相同實用程序的任何其他按鈕(這是一個rowCommand)時,視圖會更新爲更早期的單擊所需狀態。
這是一個ASP.Net應用程序嗎?如果是這樣,你有按鈕上AutoPostBack設置爲true?我懷疑這不是ASP.Net,所以你是否嘗試過在調試器中的代碼,看看是否有什麼不幸發生? – Melanie 2013-02-15 15:08:00
作爲標記這是一個ext.net應用程序。我已經多次遍歷代碼,結果如我所料。我在RefreshView()中發現錯誤。這個函數不能像它說的那樣執行;)網格直接監聽store.data.changerecord事件 - >根本沒有必要調用該函數:(最後我添加了'Grid_Mailing.reload(); Grid_Business.reload();到「After」處理程序,修復了這個問題 – Vogel612 2013-02-15 15:29:12