2012-12-27 61 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

相关问题