1

我有一个像“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 的情况下实现这一点?

4

3 回答 3

3

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

Page.DataBind();

为了这个工作

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

否则这也可能有效

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

内联 asp.net 标签...将它们全部排序(<%$、<%=、<%、<%# 等)

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

于 2013-01-25T17:06:24.663 回答
0

我会在 Page_Load 上这样做

if (!Page.IsPostBack) {
   if ( Session["Data"] != null) 
       TextBox1.Text = Session["Data"].ToString();
}
于 2013-01-25T17:03:31.653 回答
0

你是这个意思?

if (Session["Data"] != null){
         Textbox1.Text = Session["Data"].ToString();
    }
于 2013-01-25T17:04:17.340 回答