2012-12-27 98 views
1

我在用戶控件uc1中有一個文本框。我已經將這個uc1嵌入到名爲default.aspx的頁面中。我的問題是運行應用程序並在文本框中輸入一些數據後,刷新頁面時,我想顯示我輸入的文本框中的值,但不清除文本框。我希望能幫助您瞭解如何實現這一目標。在此先感謝您的幫助。頁面刷新時保留文本框的值

回答

0

我能夠在不清除文本框中的值的情況下刷新頁面。我做到了,如下: 我創造了UC1.vb一個公共屬性如下:) 公共財產textbox_value(作爲字符串

Get 
     If Session("textbox1") IsNot Nothing Then 
      Return Session("textbox1").ToString() 
     Else 
      Return "" 
     End If 
    End Get 
    Set(value As String) 
     Session("textbox1") = value 
    End Set 
End Property 

而且在我加入下面的代碼的用戶控制的Page_Load事件: 如果的IsPostBack然後 textbox_value = textbox1.Text elseif的不的IsPostBack然後「加載頁面第一次或刷新頁面 textbox1.Text = textbox_value 結束時,如果

希望它能幫助。

0

在您aspx.cs頁面的頂部創建一個全局變量:

public string textboxValue 
    { 
     get 
     { 
      if (ViewState["textboxValue"] != null) 
       return ViewState["textboxValue"].toString(); 
      else 
       return ""; 
     } 

     set 
     { 
      ViewState["textboxValue"] = value; 
     } 
    } 

然後,在pageLoad的(),分配textboxValue值:

protected void Page_Load(object sender, EventArgs e) 
    { 
if(!IsPostBack) 
textboxValue = MyTextBox.Value; 
else 
MyTextBox.Value = textboxValue; 
} 

您還可以使用textboxValue來隨時分配MyTextBox的值,或以任何其他可能對您有用的方式使用它。

+0

感謝您的幫助。這並不能解決我的問題。當我在文本框中輸入一個值並且失去焦點時,添加上面的代碼後,輸入的值將丟失。 – Sandy

+0

嗯....你說的文本框是在另一個用戶控件,uc1。這個控制有什麼作用?它對文本框中的內容有什麼影響嗎?有沒有一種方法附加到uc1或文本框,當文本框失去焦點時會影響文本框?我不知道答案;只是把想法扔出去。 – Melanie

+0

我解決了它。我將發佈代碼明天。謝謝你的幫助。 – Sandy

0

所有asp.net服務器端控件(runat="server")的默認行爲是保持其狀態。如果您的文本框在頁面刷新時被清除,那麼您可能會自己使用代碼清除該值。

您是否動態添加文本框或用戶控件?如果是這樣,你在做PageInit嗎?稍後添加它們可能會導致它們丟失狀態。

+0

謝謝你的幫助。不,我不是動態添加文本框。當頁面刷新時,我也沒有清除文本框。 – Sandy

相關問題