有以下两个页面Default.aspx y Result.aspx,代码如下:
<!-- Predeterminado.aspx -->
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Default.master" CodeFile="Default.aspx.cs" Hereda="_Default" %>
<asp:Content ID="Contenido1" runat="servidor" ContentPlaceHolderID="ContentPlaceHolder1">
<asp:Label ID="Label1" runat="server" Text="Ingrese una cadena aquí"></asp:Label>
<asp:TextBox ID="TextBox1" runat="servidor"></asp:TextBox>
<asp:Botón ID="Botón1" runat="servidor" Texto="Botón" PostBackUrl="~/Result.aspx" /></asp:Content>
//Default.aspx.cs
usando Sistema;
usando System.Data;
usando System.Configuration;
usando System.Web;
utilizando System.Web.Security;
utilizando System.Web.UI;
usando System.Web.UI.WebControls;
//usando System.Web.UI.WebControls.WebParts;
usando System.Web.UI.HtmlControls;
clase parcial pública _Default: System.Web.UI.Page
{
Page_Load vacío protegido (remitente del objeto, EventArgs e)
{
}
}
<!-- Resultado.aspx -->
<%@ Page Language="C#" MasterPageFile="~/Default.master" AutoEventWireup="true" CodeFile="Result.aspx.cs" Hereda="Resultado" Title="Página sin título" %>
<asp:Content ID="Contenido1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Servidor">
<asp:Label ID="Label1" runat="server" Text="La cadena que ingresó en la página anterior es"></asp:Label>
<asp:TextBox ID="TextBox1" runat="servidor"></asp:TextBox>
</asp:Contenido>
//Resultado.aspx.cs
usando Sistema;
usando System.Data;
usando System.Configuration;
usando System.Collections;
usando System.Web;
utilizando System.Web.Security;
utilizando System.Web.UI;
usando System.Web.UI.WebControls;
usando System.Web.UI.WebControls.WebParts;
usando System.Web.UI.HtmlControls;
Resultado de clase parcial pública: System.Web.UI.Page
{
Page_Load vacío protegido (remitente del objeto, EventArgs e)
{
si (Página anterior! = nulo)
{
TextBox tb = (TextBox)PreviousPage.FindControl("TextBox1");
si (tb != nulo)
TextBox1.Text = tb.Texto;
}
}
}
Archivos MasterPageFile. :TextBox1用于接受用户的输入,Button1用于提交页面,其PostBackUrl utiliza Result.aspx. Ejemplo:
TextBox tb = (TextBox)PreviousPage.FindControl( "Cuadro de texto1");
tb的值为null。将以上语句更改为如下代码:
Contenido con = (Contenido)PreviousPage.FindControl("Contenido1");
si (con == nulo)
devolver;
TextBox tb = (TextBox)con.FindControl("TextBox1");索,
在
forums.asp.net中找到了答案,以下引用的是bitmask的说法:
...porque los controles de contenido desaparecen después de que la página maestra reorganiza la página. Puede utilizar ContentPlaceHolders o <form> en MasterPage si no hay INamingContainers entre el formulario y el control que necesita.
所以以上的代码应该改成:
TextBox tb = (TextBox)PreviousPage.Master.FindControl("ContentPlaceHolder1").FindControl("TextBox1");
máscara de bits:
http://www.odetocode.com/Articles/116.aspx