Sie können die Datei „Default.aspx“ und „Result.aspx“ verwenden.
<!-- Default.aspx -->
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Default.master" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
<asp:Label ID="Label1" runat="server" Text="Bitte geben Sie hier eine Zeichenfolge ein"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/Result.aspx" /></asp:Content>
//Default.aspx.cs
Verwenden des Systems;
Verwenden von System.Data;
Verwenden von System.Configuration;
mit System.Web;
mit System.Web.Security;
mit System.Web.UI;
mit System.Web.UI.WebControls;
//using System.Web.UI.WebControls.WebParts;
mit System.Web.UI.HtmlControls;
öffentliche Teilklasse _Default: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
<!-- Result.aspx -->
<%@ Page Language="C#" MasterPageFile="~/Default.master" AutoEventWireup="true" CodeFile="Result.aspx.cs" Inherits="Result" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Label ID="Label1" runat="server" Text="Die Zeichenfolge, die Sie auf der vorherigen Seite eingegeben haben, ist"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</asp:Content>
//Result.aspx.cs
Verwenden des Systems;
Verwenden von System.Data;
Verwenden von System.Configuration;
Verwenden von System.Collections;
mit System.Web;
mit System.Web.Security;
mit System.Web.UI;
mit System.Web.UI.WebControls;
mit System.Web.UI.WebControls.WebParts;
mit System.Web.UI.HtmlControls;
öffentliche Teilklasse Ergebnis: System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Vorherige Seite != null)
{
TextBox tb = (TextBox)PreviousPage.FindControl("TextBox1");
if (tb != null)
TextBox1.Text = tb.Text;
}
}
}
Verwenden Sie die MasterPageFile-Datei Box1 zeigt die Schaltfläche „Button1“ an PostBackUrl verwendet Result.aspx und Result.aspx.cs zeigt die Funktion „Page_Load“ von TextBox1 an执行以下语句时:
TextBox tb = (TextBox)PreviousPage.FindControl( „TextBox1“);
tb ist nicht null. Sie können dies auch nicht tun:
Content con = (Content)PreviousPage.FindControl("Content1");
if (con == null)
zurückkehren;
TextBox tb = (TextBox)con.FindControl("TextBox1"); Weitere Informationen finden Sie
unter
forums.asp.net找到了答案, 以下引用的是bitmask的说法:
...weil die Inhaltssteuerelemente selbst verschwinden, nachdem die Masterseite die Seite neu angeordnet hat. Sie können die ContentPlaceHolders oder das <form> auf der MasterPage verwenden, wenn zwischen dem Formular und dem benötigten Steuerelement keine INamingContainer vorhanden sind.
所以以以上的代码应该改成:
TextBox tb = (TextBox)PreviousPage.Master.FindControl("ContentPlaceHolder1").FindControl("TextBox1");
Bitmask – die neueste Version von „FindControl“ und „INamingContainers“:
http://www.odetocode.com/Articles/116.aspx