2008-09-03 10 views
5

पर व्यूस्टेट सेट करना मैं बटन दबाए जाने पर व्यूस्टेट-वेरिएबल सेट करने का प्रयास कर रहा हूं, लेकिन यह दूसरी बार काम करता है जब मैं बटन पर क्लिक करता हूं। यहां कोड-पीछे है:पोस्टबैक

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Page.IsPostBack) 
    { 
     lblInfo.InnerText = String.Format("Hello {0} at {1}!", YourName, DateTime.Now.ToLongTimeString()); 
    } 
} 

private string YourName 
{ 
    get { return (string)ViewState["YourName"]; } 
    set { ViewState["YourName"] = value; } 
} 


protected void btnSubmit_Click(object sender, EventArgs e) 
{ 
    YourName = txtName.Text; 

} 

क्या मुझे कुछ याद आ रही है?

<form id="form1" runat="server"> 
<div> 
Enter your name: <asp:TextBox runat="server" ID="txtName"></asp:TextBox> 
<asp:Button runat="server" ID="btnSubmit" Text="OK" onclick="btnSubmit_Click" /> 
<hr /> 
<label id="lblInfo" runat="server"></label> 
</div> 
</form> 

पुनश्च:: नमूना बहुत सरल है, "ViewState के बजाय txtName.Text का उपयोग" नहीं है सही जवाब यहाँ डिजाइन फ़ाइल के रूप-भाग है, बस एक POC के रूप में बहुत ही बुनियादी है , मुझे दृश्यस्टेट में होने वाली जानकारी चाहिए।

उत्तर

12

Page_LoadbtnSubmit_Click से पहले आग लगती है।

यदि आप अपनी पोस्टबैक घटनाओं को Page_PreRender का उपयोग करने के बाद कुछ करना चाहते हैं।

//this will work because YourName has now been set by the click event 
protected void Page_PreRender(object sender, EventArgs e) 
{ 
    if (Page.IsPostBack) 
     lblInfo.InnerText = String.Format("Hello {0} at {1}!", YourName, DateTime.Now.ToLongTimeString()); 
} 

बुनियादी आदेश जाता है:

  • पृष्ठ init आग (init ViewState उपयोग नहीं कर सकते)
  • ViewState
  • पेज लोड आग
  • किसी भी घटनाओं आग
  • पूर्वप्रस्तुत आग पढ़ा जाता है
  • पेज प्रस्तुत करता है