我在用户控件 uc1 中有一个文本框。我已将此 uc1 嵌入到名为 default.aspx 的页面中。我的问题是在运行应用程序并在文本框中输入一些数据后,刷新页面时我想显示我在文本框中输入的值而不清除文本框。我想要有关如何实现此目标的代码帮助。在此先感谢您的帮助。
问问题
5353 次
3 回答
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 的值,或以任何其他可能对您有用的方式使用它。
于 2012-12-27T17:25:49.953 回答
0
所有 asp.net 服务器端控件 ( ) 的默认行为runat="server"
是保持其状态。如果您的文本框在您的页面刷新时被清除,您可能会在代码中自己清除该值。
您是动态添加文本框还是用户控件?如果是这样,你在做PageInit
吗?稍后添加它们可能会导致它们丢失状态。
于 2012-12-27T17:40:19.867 回答
0
我能够在不清除文本框中的值的情况下刷新页面。我这样做如下:我在 UC1.vb 中创建了一个公共属性,如下所示: Public Property 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 事件中,我添加了以下代码: If IsPostBack Then textbox_value= textbox1.Text ElseIf Not IsPostBack Then ' 第一次加载页面或刷新页面时 textbox1.Text = textbox_value End If
希望能帮助到你。
于 2012-12-28T16:13:18.723 回答