Default.aspx dan Result.aspx:
<!-- Default.aspx -->
<%@ Halaman 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="Silakan masukkan string di sini"></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
menggunakan Sistem;
menggunakan Sistem.Data;
menggunakan Sistem.Konfigurasi;
menggunakan Sistem.Web;
menggunakan Sistem.Web.Keamanan;
menggunakan Sistem.Web.UI;
menggunakan Sistem.Web.UI.WebControls;
//menggunakan System.Web.UI.WebControls.WebParts;
menggunakan Sistem.Web.UI.HtmlControls;
kelas parsial publik _Default : System.Web.UI.Page
{
dilindungi kekosongan Page_Load (pengirim objek, EventArgs e)
{
}
}
<!-- Hasil.aspx -->
<%@ Page Language="C#" MasterPageFile="~/Default.master" AutoEventWireup="true" CodeFile="Result.aspx.cs" Inherits="Result" Title="Halaman Tanpa Judul" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:Label ID="Label1" runat="server" Text="String yang Anda masukan pada halaman sebelumnya adalah"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</asp:Isi>
//Hasil.aspx.cs
menggunakan Sistem;
menggunakan Sistem.Data;
menggunakan Sistem.Konfigurasi;
menggunakan Sistem.Koleksi;
menggunakan Sistem.Web;
menggunakan Sistem.Web.Keamanan;
menggunakan Sistem.Web.UI;
menggunakan Sistem.Web.UI.WebControls;
menggunakan System.Web.UI.WebControls.WebParts;
menggunakan Sistem.Web.UI.HtmlControls;
hasil kelas parsial publik : System.Web.UI.Page
{
dilindungi kekosongan Page_Load (pengirim objek, EventArgs e)
{
jika (Halaman Sebelumnya! = null)
{
TextBox tb = (TextBox)PreviousPage.FindControl("TextBox1");
jika (tb != nol)
TextBox1.Text = tb.Teks;
}
}
}
MasterPageFile dan MasterPage中的内容无关紧要,就不列出来了。在Default.aspx上有两个Deskripsi:TextBox1 untuk teks, Button1 untuk teks, dan Button1 PostBackUrl指向Result.aspx。在Result.aspx.cs的Page_Load方法中尝试在TextBox1中显示用户在前一页面的TextBox1中输入的字符串。当执Opsi ini:
TextBox tb = (TextBox)PreviousPage.FindControl( "Kotak Teks1");
tb的值为null。将以上语句更改为如下代码:
Content con = (Content)PreviousPage.FindControl("Content1");
jika (kon == nol)
kembali;
TextBox tb = (TextBox)con.FindControl("TextBox1");
但con的值为null,这样后续的语句也不可能执行了。问题出在哪里呢?
经过一番melalui forums.asp.net中Bagaimana cara menggunakan bitmask?
...karena kontrol Konten sendiri menghilang setelah halaman master mengatur ulang halaman tersebut. Anda dapat menggunakan ContentPlaceHolders, atau <form> di MasterPage jika tidak ada INamingContainers antara formulir dan kontrol yang Anda perlukan.
Opsi berikut:
TextBox tb = (TextBox)PreviousPage.Master.FindControl("ContentPlaceHolder1").FindControl("TextBox1");
bitmask dalam sistem operasi FindControl pada sistem operasi FindControl di INamingContainers:
http://www.odetocode.com/Articles/116.aspx