2010-08-06 68 views
0

由於itemcommand事件在大部分(如果不是全部)頁面/控件init/load事件之後觸發。什麼是持久化在itemcomment上修改的會話變量數據的最佳方式(例如添加項目),以便頁面可以使用修改的會話對itemcommand做出反應?在listview itemcommand上保留會話變量的最佳方式ASP.NET

+0

我只看到(和工作)的解決方案是處理頁面預渲染上的任何功能。似乎可以工作,但奇怪的是itemcommand不像其他控件事件那樣觸發。 – Skowronek 2010-08-06 19:08:53

+1

你能提供一個你想要做什麼和沒有爲你工作的例子嗎? 一般而言,您應該可以根據您在itemcommand處理程序中看到的適應性來修改會話,但由於大多數頁面事件已經觸發了您的頁面,所以在下一個請求(通常不是你想要什麼)。 – 2010-08-06 19:35:06

+0

問題是我需要一個計數器在頁面中點擊一個按鈕後在頁面上更新。我可以通過將更新邏輯放入頁面預渲染事件中來完成。 – Skowronek 2010-08-07 15:51:39

回答

0

你能趕上回發早前在頁面的生命週期:

// id of the control 
    string id = Request.Form["__EVENTTARGET"]; 

    if (!string.IsNullOrEmpty(id) && id.Contains("myControlId")) 
    { 
     string argument = Request.Form["__EVENTARGUMENT"]; 
     ... 
    } 

,但它既不非常優雅也不安全。我會遵循Skowronek的建議:在PreRender上放置更多的邏輯。