得到一個例外,我得到這樣的:我在使用ViewState的
System.Runtime.Serialization.SerializationException
在大會「的System.Web類型 'System.Web.UI.WebControls.Button' ,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'未標記爲可序列化。 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。
異常詳細信息:System.Runtime.Serialization.SerializationException:在程序集'System.Web,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'中鍵入'System.Web.UI.WebControls.Button'標記爲可序列化。
我把它當我嘗試列表保存到一個視圖狀態,並在Page_PreInit事件
我設置的按鈕恢復它,並將其添加到列表中,我後來保存到一個視圖狀態:
ViewState["Buttons"] = buttons;
然後我想找回它們,重視他們回到自己的事件處理器:
void Page_PreInit(object sender, EventArgs e)
{
List<Button> btn = (List<Button>)ViewState["Buttons"];
if (btn!=null)
{
foreach (var item in btn)
{
item.Width = 20;
item.Command += obtainTopicsPerPage_Click;
item.CommandName = tPage.ToString();
item.Text = tPage.ToString();
}
}
}
在視圖狀態中存儲按鈕的某些值,而不是對象本身,並在下一頁加載時從狀態重新創建它。或者,Session對象可以很好地存儲對象引用,並且可以減少客戶端的開銷。 – asawyer 2011-06-15 11:52:05
我如何保存按鈕之間的每個回發之間的狀態,因爲它們之間的所有事件都消除了回傳:(...當我在回發後按按鈕沒有eventhanlder方法觸發 – 2011-06-15 12:04:44