asp.Netwebライフサイクルとviewstateとloadpostdataのメモ
2255 ワード
参考文献:
Understanding ASP.NET View State https://msdn.microsoft.com/en-us/library/ms972976.aspx#viewstate_topic11
例を作成しました.
1.このページに初めてアクセスします.
textbox 2,textbox 3のtextはいずれも初期値である(この場合viewstateがないと理解できる)
2. click "button1";
textbox 2,textbox 3'textはbutton 1 clickを与えた.(これはエコーですviewstateが値を保存します)
3. click "button2"
これは初期化後、load state view、load post data(これはpost dataが変化していない値です).save state view, render;
3. modify textbox2 text to 'buttone1clicktest'
これは初期化で、load state view、load post data(これはpostdataがfor textbox 2に変化した)、save state view、render.
また、私の理解:viewstateはclientでは変更されず、そのままサーバに再送信されます
ここで質問ですが、私のtextbox 2は実際に(page_load)動的にロードされ、原理に従ってpageのload view stateはpage_loadは前に完了しているので、textbox 2というcontrolのview stateはloadにはあげられないはずなのに、リアルタイムでロードされているので、controlはこの流れに従うべきだと思います(彼が作成しないでください)、init、load viewstate、load post data、最後のrender
Understanding ASP.NET View State https://msdn.microsoft.com/en-us/library/ms972976.aspx#viewstate_topic11
例を作成しました.
public partial class _Default : Page
{
protected void Page_Init(object sender, EventArgs e)
{
this.Title = "ss";
System.Web.UI.WebControls.TextBox TextBox3 = new TextBox();
TextBox3.Text = "textbox3Init";
TextBox3.ID = "textbox3Init";
PlaceHolder1.Controls.Add(TextBox3);
}
protected void Page_Load(object sender, EventArgs e)
{
System.Web.UI.WebControls.TextBox TextBox2 = new TextBox();
TextBox2.Text = "textbox2Init";
TextBox2.ID = "textbox2Init";
PlaceHolder1.Controls.Add(TextBox2);
}
protected void Button1_Click(object sender, EventArgs e)
{
foreach (Control c in PlaceHolder1.Controls)
{
if(c.ID == "textbox3Init")
{
((TextBox)c).Text = "button1click";
}
if (c.ID == "textbox2Init")
{
((TextBox)c).Text = "button1click";
}
}
}
}
}
: button2, , postback 。
1.このページに初めてアクセスします.
textbox 2,textbox 3のtextはいずれも初期値である(この場合viewstateがないと理解できる)
2. click "button1";
textbox 2,textbox 3'textはbutton 1 clickを与えた.(これはエコーですviewstateが値を保存します)
3. click "button2"
これは初期化後、load state view、load post data(これはpost dataが変化していない値です).save state view, render;
3. modify textbox2 text to 'buttone1clicktest'
これは初期化で、load state view、load post data(これはpostdataがfor textbox 2に変化した)、save state view、render.
また、私の理解:viewstateはclientでは変更されず、そのままサーバに再送信されます
ここで質問ですが、私のtextbox 2は実際に(page_load)動的にロードされ、原理に従ってpageのload view stateはpage_loadは前に完了しているので、textbox 2というcontrolのview stateはloadにはあげられないはずなのに、リアルタイムでロードされているので、controlはこの流れに従うべきだと思います(彼が作成しないでください)、init、load viewstate、load post data、最後のrender