ASP.NET Tutorial/Page Lifecycle/Page Class
Содержание
aspx page inherits from a "Page" class (C#)
<%@ Page Inherits="ParentPage" src="Default.aspx.cs" %>
<html><body>
<form runat="server">
<asp:Label id="lblMessage" runat="server" />
<asp:DataGrid id="DataGrid1"
runat="server"
BorderColor="black"
GridLines="Vertical"
cellpadding="4"
cellspacing="0"
width="100%"
Font-Name="Arial"
Font-Size="8pt"
HeaderStyle-BackColor="#cccc99"
ItemStyle-BackColor="#ffffff"
AlternatingItemStyle-Backcolor="#cccccc"
AutoGenerateColumns="True" />
</asp:DataGrid>
</form>
</body></html>
File: Default.aspx.cs
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
public class ParentPage : Page {
public Label lblMessage;
public DataGrid DataGrid1;
private OleDbConnection objConn;
void Page_Load(Object Sender, EventArgs e) {
objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("EmployeeDatabase.mdb"));
if (!Page.IsPostBack) {
FillDataGrid();
}
}
private void FillDataGrid() {
FillDataGrid(-1);
}
private void FillDataGrid(int EditIndex) {
OleDbCommand objCmd = new OleDbCommand("select * from employee", objConn);
OleDbDataReader objReader;
try {
objCmd.Connection.Open();
objReader = objCmd.ExecuteReader();
DataGrid1.DataSource = objReader;
DataGrid1.DataBind();
objReader.Close();
} catch (OleDbException ex) {
lblMessage.Text = "Error retrieving from the database.";
}
objCmd.Connection.Close();
}
}
aspx page inherits from a "Page" class (vb.net)
<%@ Page Inherits="ParentPage" src="Default.aspx.vb" %>
<html><body>
<form runat="server">
<asp:Label id="lblMessage" runat="server" />
<asp:DataGrid id="DataGrid1"
runat="server"
AutoGenerateColumns="True" />
</asp:DataGrid>
</form>
</body></html>
File: Default.aspx.vb
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Data
Imports System.Data.OleDb
Public Class ParentPage : Inherits Page
public lblMessage as Label
public DataGrid1 as DataGrid
private strConnString as string = "Provider=" & _
"Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=yourDatabase.mdb"
private objConn as new OleDbConnection(strConnString)
sub Page_Load(Sender as Object, e as EventArgs)
if Not Page.IsPostBack then
FillDataGrid()
end if
end sub
private sub FillDataGrid(Optional EditIndex as integer=-1)
dim objCmd as OleDbCommand = new OleDbCommand("select * from tblUsers", objConn)
dim objReader as OleDbDataReader
try
objCmd.Connection.Open()
objReader = objCmd.ExecuteReader
catch ex as OleDbException
lblMessage.Text = "Error retrieving from the database."
end try
DataGrid1.DataSource = objReader
DataGrid1.DataBind()
objReader.Close
objCmd.Connection.Close()
end sub
End Class
Expose the control through a page property
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public string SearchString
{
get { return txtSearch.Text; }
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Button Search Typed</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label
id="lblSearch"
Text="Search:"
Runat="server" />
<asp:TextBox
id="txtSearch"
Runat="server" />
<asp:Button
id="btnSearch"
Text="Go!"
PostBackUrl="NextPage.aspx"
Runat="server" />
</div>
</form>
</body>
</html>
File: NextPage.aspx
<%@ Page Language="C#" %>
<%@ PreviousPageType VirtualPath="~/Default.aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load()
{
if (Page.PreviousPage != null)
{
lblSearch.Text = String.Format("Search For: {0}", PreviousPage.SearchString);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Button Search Results Typed</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label
id="lblSearch"
Runat="server" />
</div>
</form>
</body>
</html>
Fundamental properties in The Page Class
Every web page is a custom class that inherits from System.Web.UI.Page.
Property Description
IsPostBack Boolean property
indicates whether this is the first time the page is being run(false) or
whether the page is being resubmitted in response to a control event.
EnableViewState When set to false, this overrides the EnableViewState property of the
contained controls, thereby ensuring that no controls will maintain state information.
Application This collection holds information that"s shared between all users in your website.
You can use the Application collection to count the number of times a page has been visited.
Session This collection holds information for a single user.
Uou can use it to store the items in the current user"s shopping basket on an e-commerce website.
Cache This collection stores objects that are time-consuming to create
Request This refers to an HttpRequest object.
You can use the HttpRequest object to get information about the user"s browser
Response This refers to an HttpResponse object
Server This refers to an HttpServerUtility object
User If the user has been authenticated, this property will be initialized with user information.
Is page valid
<%@ Page Language="vb" %>
<html>
<head>
<title>IsValid property example</title>
<script runat="server">
Sub Page_Load()
If IsPostBack Then
Page.Validate()
If Page.IsValid Then
myMessage.Text = "Page is valid."
Else
myMessage.Text = "Page is not valid."
End If
End If
End Sub
</script>
</head>
<body>
<form runat="server">
Enter your name:
<asp:textbox id="name" runat="server"/>
<asp:requiredfieldvalidator
id="rfvName"
controltovalidate="name"
enableclientscript="false"
errormessage="Required!"
runat="server"/>
<br/>
<asp:button id="submit" Text="Submit" runat="server"/>
<br/>
<asp:label id="myMessage" runat="server"/>
</form>
</body>
</html>
Page.ErrorPage
<%@ Page Language="vb" %>
<html>
<head>
<title>ErrorPage property example</title>
<script runat="server">
Sub Page_Load()
Page.ErrorPage = "NextPage.aspx"
Dim x, y, overflow As Integer
x = 1
y = 0
overflow = x/y
"This code will not be executed
Message.Text = "Error Page is " & Page.ErrorPage & "."
End Sub
</script>
</head>
<body>
<asp:label id="Message" runat="server"/>
</body>
</html>
File: NextPage.aspx
<%@ Page Language="vb" %>
<html>
<head>
<title>ErrorPage property example</title>
<script runat="server">
Sub Page_Load()
Message.Text = "An error occurred. Please try again later."
End Sub
</script>
</head>
<body>
<asp:label id="Message" runat="server"/>
</body>
</html>
Page.HasControls
<%@ Page Language="vb" %>
<html>
<head>
<title>HasControls method example</title>
<script runat="server">
Sub Page_Load()
If Page.HasControls = True Then
Message.Text = "The page contains controls."
Else
Message.Text = "The page does not contain controls."
End If
End Sub
</script>
</head>
<body>
<asp:label id="Message" runat="server"/>
</body>
</html>
Page.ResolveUrl
<%@ Page Language="vb" %>
<html>
<head>
<title>ResolveUrl method example</title>
<script runat="server">
Sub Page_Load()
Message.Text = Page.ResolveUrl("Default.aspx")
End Sub
</script>
</head>
<body>
<asp:label id="Message" runat="server"/>
</body>
</html>