重定向另一个页面时清除母版页中的文本框
本文关键字:文本 母版页 清除 另一个 重定向 | 更新日期: 2023-09-27 18:34:18
我有一个这样的母版页:
public partial class Site1 : System.Web.UI.MasterPage
{
public string myText
{
get { return TextBox1.Text; }
set { TextBox1.Text = value; }
}
}
站点1.主 :
@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="Project1.Site1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
和默认.aspx页面,如下所示:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Project1.Default" %>
<%@ MasterType virtualpath="~/Site1.Master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:TextBox ID="testTextBox" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="OK" OnClick="Button1_Click" />
</asp:Content>
我访问默认.aspx.cs页面中的 TextBox1 控件,如下所示:
protected void Button1_Click(object sender, EventArgs e)
{
this.Master.myText = testTextBox.Text;
Response.Redirect("~/Page2.aspx");
}
我的问题在最后一行,当我转到第 2 页时.aspx myText 已清除!并且不显示在第 2 页.aspx中。我该怎么办?
您有多种可能性:
1)将其附加到下一个网址
添加一个参数,如下面的示例所示,例如val
存储文本框文本的位置。
protected void Button1_Click(object sender, EventArgs e)
{
this.Master.myText = testTextBox.Text;
Response.Redirect("~/Page2.aspx?val=" + testTextBox.Text);
}
然后,您可以在母版页中获取此值,如下所示:
private string _Val {
get {
return Request["val"] != null ? Request["val"].ToString() : "";
}
}
然后,可以将该属性追加到文本框中,如下所示:
this.myTextBox.Text = _Val;
2)将其存储在会话中
创建会话对象。
Session["ValText"] = testTextBox.Text;
使用属性在母版页中获取会话的值:
private string _Val {
get {
return Session["ValText"] != null ? (string)Session["ValText"] : "";
}
}
然后,可以将该属性追加到文本框中,如下所示:
this.myTextBox.Text = _Val;
您的
文本框1.加载网站的任何页面时,文本将被清除...如果您想在所有网站页面中使用它,请尝试将值存储在会话变量中。
请参阅此示例 => http://asp.net-tutorials.com/state/sessions/