如何在服务器端设置文本框值

时间:2013-01-25 17:00:39

标签: asp.net textbox session-variables

我有一个像“default.aspx”这样的asp.net页面,其中包含:

<form id="form1" runat="server" >        
    <asp:Textbox id="Textbox1" runat="server" />
    <asp:Button id="Button1" runat="server" onClick="Button1_Click" text="submit" />
</form>

我想要的是在用户从其他子页面返回时在文本框字段中保留文本值 所以在.cs文件中我试试这个:

protected void Button1_Click(object sender, EventArgs e){
    Session["Data"] = Textbox1.Text;
}

public string Data{get{return Session["Data"].ToString();}}      

和in.aspx:

<asp:Textbox id="Textbox1" runat="server" text="<%# Data %>" />

但它不起作用,文本框字段变为空白   如何在没有javascript的情况下实现这个?

3 个答案:

答案 0 :(得分:3)

#仅适用于数据绑定表达式。所以你需要(例如在Page_Init)

Page.DataBind();

让它工作

<asp:Textbox id="Textbox1" runat="server" text="<%# this.Data %>" />

否则这可能也有效

<asp:Textbox id="Textbox1" runat="server" text="<%= this.Data %>" />

inline asp.net tags... sorting them all out (<%$, <%=, <%, <%#, etc.)

正如已经评论过的那样,一般来说最好使用代码隐藏,因为那时你有编译时检查。

答案 1 :(得分:0)

我会在Page_Load

上执行此操作
if (!Page.IsPostBack) {
   if ( Session["Data"] != null) 
       TextBox1.Text = Session["Data"].ToString();
}

答案 2 :(得分:0)

你是说这个意思吗?

if (Session["Data"] != null){
         Textbox1.Text = Session["Data"].ToString();
    }