我有一个像“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的情况下实现这个?
答案 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();
}