在页面刷新时保留文本框值

时间:2012-12-27 17:17:12

标签: asp.net

我在用户控件uc1中有一个文本框。我在一个名为default.aspx的页面中嵌入了这个uc1。我的问题是在运行应用程序并在文本框中输入一些数据后,刷新页面时我想显示我在文本框中输入的值而不清除文本框。我想帮助解决如何实现此问题的代码。在此先感谢您的帮助。

3 个答案:

答案 0 :(得分: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的值,或者以对您有用的任何其他方式使用它。

答案 1 :(得分:0)

所有asp.net服务器端控件(runat="server")的默认行为是保持其状态。如果在页面刷新时清除了文本框,则可能会在代码中自行清除该值。

您是否动态添加文本框或用户控件?如果是这样,你在PageInit期间这样做了吗?稍后添加它们可能会导致它们失去状态。

答案 2 :(得分:0)

我能够在不清除文本框中的值的情况下刷新页面。我做了如下: 我在UC1.vb中创建了一个公共属性,如下所示: 公共属性textbox_value()As String

    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 Not IsPostBack然后'第一次加载页面或刷新页面             textbox1.Text = textbox_value          结束如果

希望它有所帮助。