This文章指出,Page_PreInit
應該用來在哪個事件中應該設置動態控制屬性?
創建或重新創建動態控件。
例如:
Button button = new Button();
somePanel.Controls.Add(button);
好。我明白。
然而,它也表示:
如果請求是回發,所述控件的值尚未 是來自於視圖狀態恢復。如果您在此 階段設置控件屬性,則其值可能會在下一個事件中被覆蓋。
咦?
這是否意味着我應該做的就是創建按鈕,但不設置按鈕的任何成員?
例如:
Button button = new Button() { CommandArgument="arg" };
somePanel.Controls.Add(button);
這是否意味着,在這個事件中設置CommandArgument
是不正確/不推薦/可能會導致錯誤/意外的行爲?
假設是不正確,這將導致我認爲一個人會做這樣的事情:
protected void Page_PreInit(object sender.....)
{
somePanel.Controls.Add((new Button());
}
protected void Page_Init(object sender.....)
{
foreach(Button button in somePanel.Controls)
button.CommandArgument = "arg";
}
這是正確的方式?
最後,在哪個事件中應該設置動態控制屬性?
做什麼文章說..有它在init中,然後有一些如果IsPostBack代碼..你可以做預渲染或PreInit以及我的意見 – MethodMan 2012-02-23 19:25:56
@DJKRAZE - 我很困惑什麼文章狀態,因此問題:)。 – 2012-02-23 19:29:57