ả
ạ
Qu n lý tr ng thái
Nguy n Hà Giang
Nguyen Ha Giang
ễ
ộ
N i dung
2
Đ i t
ố ượ ng Request Response
Qu n lý tr ng thái
View state
Session state
Cookie
Application state
Query string
Crosspage Postback
Nguyen Ha Giang
ả ạ
RequestResponse
3
Nguyen Ha Giang
ố ượ
Đ i t
ng Request
4
Request là m t th hi n c a l p HttpRequest, Browser
ộ
ầ ể ệ ủ ớ ể ử ế ớ t t i
dùng Request object đ g i thông tin c n thi Server
ừ ử client g i lên (header, query
Nguyen Ha Giang
ể ọ Dùng đ đ c thông tin t string, cookies, …)
ố ượ
Đ i t
ng Request
5
RequestType: tr v ph
ứ
ế ồ ng th c truy n d li u t ươ ứ ả ề ươ client đ n server g m 2 ph ề ữ ệ ừ ng th c POST và GET
Request.Form(“đ i t g i theo POST
ố ượ ầ ầ ọ ị ọ ng c n đ c”): đ c giá tr ph n
ử ở t
Request.QueryString(“đ i t ầ ử ượ ở đ
ố ượ ọ
Nguyen Ha Giang
ộ ủ c a m t ph n t ầ ươ c g i theo ph ọ ị ng c n đ c”): đ c giá tr ứ ng th c GET
Request POST
6
Có giao di nệ
Nguyen Ha Giang
Request POST
7
Nguyen Ha Giang
Request POST
8
L y giá tr c a UserName và Password trên form
Nguyen Ha Giang
ị ủ ấ
Request GET
9
L y d li u t
ấ ữ ệ ừ form
N u không có giá tr thì tr v là null
Nguyen Ha Giang
ả ề ế ị
Request GET
10
Nguyen Ha Giang
Request GET
11
T i Server, CheckUser.aspx l y giá tr c a UserName và
ị ủ ạ ấ
Nguyen Ha Giang
Password
Request GET
12
Ví dụ
ố ấ T i ReadNews.aspx mu n l y giá catID and NewsID,
Nguyen Ha Giang
ạ ử ụ s d ng cú pháp
ố ượ
Đ i t
ng Response
13
Đ i t
ố ượ ở ộ ệ ấ ỳ ề ng g i n i dung b t k v cho trình duy t
Ph
ươ ứ ng th c:
ể ử
ị ể
ể
ứ
Response.Write() dùng đ g i giá tr bi u
ứ
ề
ệ
th c truy n vào cho phía trình duy t.
ể ớ
ỉ
ộ
ị Response.Redirect(“đ a ch URL”): Chuy n t
i m t trang
Nguyen Ha Giang
khác.
ố ượ
Đ i t
ng Response
14
Các ph
Response.Clear(): xóa vùng t mạ
ươ ứ ng th c
Response.Flush(): dùng đ a d li u còn trong b đ m
ư ữ ệ ộ ệ
ề ệ phía server v cho trình duy t
ử ế Response.End(): k t thúc ti n trình x lý trên Server và
Nguyen Ha Giang
ẩ ữ ệ ớ đ y d li u t ế i client.
ố ượ
Đ i t
ng Response
15
ộ Thu c tính:
ị
ị Buffer: có hai giá tr quy đ nh cách truy n t
ề ả ữ ệ i d li u
ấ
ệ
ở
True: hoàn t
ầ t công vi c và g i 1 l n
ở ế
ự
ế
ệ
False: th c hi n xong đ n đâu thì g i đ n đó.
Nguyen Ha Giang
ố ượ
Đ i t
ng Server
16
ứ ụ ấ
ươ ứ ể ấ ủ Cung c p các thông tin c a server cho ng d ng, bao ng th c, mã hóa, chuy n trang, l y mã
ồ g m các ph i.ỗ l
Các thu c tính:
MachineName: tên server
ộ
ế ậ
ử
ờ
ố
ộ
ScriptTimeout: thi
t l p th i gian x lý t
i đa cho m t
file.
Nguyen Ha Giang
ố ượ
Đ i t
ng Server
17
Các ph
ươ ứ ng th c
ạ ườ
ẫ ả
ườ
MapPath(“URL”): ánh x đ
ng d n o thành đ
ng
ậ
ậ ẫ d n v t lý cho t p tin trên server.
Cú pháp
Server.MapPath(path)
ự
ệ ườ
ẫ ươ
ng d n t
ố ủ ậ ng đ i c a t p tin
ỗ Path là chu i th c hi n đ ụ
ứ
trên ng d ng web.
ứ ẽ ả ề
ự ườ
ệ
ỗ
ậ
ẫ
ng th c s tr v chu i hi n th c đ
ng d n v t lý
Ph
ươ ủ ậ c a t p tin đó
Nguyen Ha Giang
ố ượ
Đ i t
ng Server
18
Transfer: g i t
ử ở t c thông tin mà server đang x lý
ệ ử ấ ả trang hi n hành sang trang khác
Server.Transfer(path)
Trong đó tham s path là đ
ố ườ ẫ ậ ầ ng d n t p tin aspx c n
L u ý:ư
chuy nể
ỉ ế ườ
ệ
ẫ ươ
Kí hi u “~” ch đ n đ
ng d n t
ố ng đ i
ỉ ế ườ
ệ
ẫ
Kí hi u “..” ch đ n đ
ệ ố ng d n tuy t đ i
Nguyen Ha Giang
Server.Transfer khác v i Reponse.Redirect
ớ
ố ượ
Đ i t
ng Server
19
ẻ ể HtmlDecode(str): dùng đ mã hóa th HTML thành
Ví d :ụ
<%
response.write(Server.HTMLEncode("The image tag:
"))
%>
source:
The image tag:
Web browser output:
The image tag:
Nguyen Ha Giang
chu iỗ
ố ượ
Đ i t
ng Server
20
HtmlEncode(str): dùng đ gi
Ví d :ụ
Str = “m>10” Str = Server.HtmlDecode(str); // kết quả m>10
Nguyen Ha Giang
ể ả ẻ i mã th HTML
Quick test
using System;
public class User { private string Name { get; set; } }
using System.Collections.Generic;
using System.Web.UI;
using System.Windows.Forms;
namespace Demo{
public partial class _Default : Page {
private readonly List
protected void Page_Load(object sender, EventArgs e) { _source.Add(new User()); }
Không dùng máy tính, giả sử có 1 web app có 2 button là button1 , button2! Khi chạy app, user click vào button1 3 lần, sau đó click vào button2 thì messagebox sẽ show ra giá trị _source.Count bằng bao nhiêu ! Tại sao ?
public void Button1_Click(object sender, EventArgs e) { _source.Add(new User ()); } public void Button2_Click(object sender, EventArgs e) { _source.Add(new User()); MessageBox.Show(_source.Count.ToString()); } } }
View state
22
View State
ủ
ữ
ậ
ộ
ỹ
K thu t dùng đ l u tr thông tin c a m t trang web
ể ư ầ
ASP.NET qua các l n post back.
ụ
ộ ủ
ớ
Do d li u c c b c a trang web (l p page) ch t n t
ữ ệ ử
ỉ ồ ạ ỷ
ị
ị
i ử khi x lý trên server. Khi x lý xong thì page b hu , nên ỷ ữ ệ ụ ộ ủ d li u c c b c a page cũng b hu .
ữ
ồ ạ
ầ
ố
i xuyên su t các l n post back
ữ ệ Nh ng d li u nào t n t ặ
ế
thì nên đ t là bi n view state.
ữ ệ ẽ ượ ư
ữ
ầ
Khi đó d li u s đ
c l u gi
qua các l n post back.
Nguyen Ha Giang
View state
23
Cho phép l u các ki u d li u c a .NET
ể ữ ệ ủ ư
ữ ở ủ ư L u tr client side, trong hidden field c a trang web
ữ ư ấ ữ ệ ủ ầ
L u tr trong các l n post back c a trang. M t d li u ớ khi user nh p vào URL m i
ậ
ớ ạ ộ ạ Ph m vi gi i h n trong m t trang web
ở ạ tr ng thái insecure. Tuy nhiên ta
ế ậ ể ả B o m t ể có th thi ặ ị ậ : m c đ nh t l p page directive đ mã hóa
ư ớ ế: l u tr s l ng l n thông tin trong viewstate
ậ ữ ố ượ H n chạ ờ ẽ s làm ch m th i gian response và request
Th
Nguyen Ha Giang
ể ặ ệ ủ ặ ng dùng đ cài đ t thông tin đ c bi t nào đó c a
ườ page
View state
24
View state là u tiên
ư ọ ự ầ ầ ư ữ ch n l a đ u tiên khi c n l u tr
ủ ạ ộ thông tin trong ph m vi c a m t trang web!
View state cũng đ
ượ ử ụ ở
c s d ng b i ASP.NET Web ộ ữ
ữ ầ control, cho phép các control này duy trì nh ng thu c tính gi a các l n post back
Có th add d li u vào
ữ ệ ể
int count; if (ViewState["Count"] == null) count = 0; else count = (int) ViewState["Count"]; count += 1; ViewState["Count"] = count;
view state collection
ố ầ
ộ thông qua thu c tính
Label1.Text = string.Format("S l n postback {0}", count);
Nguyen Ha Giang
Page.ViewState
View state
25
Advantages:
ử ụ View state không s d ng memory trên server
ư
ộ
ị
View state cũng không b ràng bu c nào (nh time out)
ử ụ ạ ố ế Tình hu ng h n ch khi s d ng view state
ứ ộ
ữ ệ
ế ư
ầ C n thi
ữ d li u có m c đ nh y c m cao. View t l u tr ể
ạ ả ự
ọ ố ơ
ư
state cũng có th mã hóa, nh ng session l a ch n t
t h n.
ế ư
ử ụ
ượ
ữ
ề
ầ C n thi
t l u tr thông tin đ
ố
ặ
c s d ng trong nhi u ử ụ trang. Trong tình hu ng này ta s d ng session, cookie ho c query string.
ố
ậ ặ
t l u tr thông tin l n và không mu n làm ch m i, nên s d ng database, cache ho c
ữ ớ ế ư ầ C n thi Nguyen Ha Giang ử ụ ề ả ờ th i gian truy n t session.
Session
HTML đ nh nghĩa các quy lu t đ truy n t
ậ ể ề ả ị
(cid:0) ữ ệ i thông tin là
text, graphic, video và các d li u khác qua WWW ạ d ng giao th c “ ứ stateless”
M i request s không bi
ẽ ế ấ ứ ề t b t c thông tin gì v request
ỗ ướ ặ tr c đó ho c request sau này.
H n ch khi xây d ng ng d ng web ph c t p, quan tâm
ứ ạ ụ ế
ủ ự ứ ườ ạ ế đ n hành vi c a ng i dùng (ecommerce)
C n ph i có c ch nào đó đ kh c ph c v n đ trên!
Nguyen Ha Giang
26
ụ ấ ơ ế ể ề ả ầ ắ
Session là gì?
User 2
User 1
Session: user 1 Session: user 2 Session: user 3
User 3
Nguyen Ha Giang
27
Session là gì?
Nguyen Ha Giang
28
Session là gì?
ệ ệ Khái ni m phiên làm vi c
ầ
ầ
ỗ
ộ
M i khi user request m t trang web (l n đ u tiên) thì phiên
ệ ượ ạ
làm vi c đ
c t o ra.
ộ ố
ệ ượ ấ
ậ
ạ M t s nh n d ng phiên làm vi c đ
ở c c p b i server
ệ ế
Phiên làm vi c k t thúc khi
ườ ậ
ủ
Ng
i l p trình h y
ế
K t thúc cycle life
User đóng trình duy tệ
Phiên làm vi c là cách th c trau đ i/chia x d li u gi a
Nguyen Ha Giang
29
ẻ ữ ệ ứ ữ ệ ổ
các trang web trong Web app.
Session
Cho phép l u tr d li u ki u .NET
ữ ữ ệ ư ể
ớ ủ ữ ư ộ L u tr trên b nh c a server
ộ ờ
ị ặ ể ổ ả ế Th i gian s ng k t thúc sau m t kho ng th i gian đ nh ườ ng là 20 phút, có th thay đ i, ho c
ờ ố ướ th c ( nghĩa tr ủ ) ậ l p trình h y
Ph m vi toàn b ng d ng .NET
ộ ứ ụ ạ
ữ
ậ ể
ữ ệ ư ả Tính b o m t cao, do d li u l u tr trên server, không ỗ ờ session bao gi chuy n cho client và m i client có client id riêng
Nguyen Ha Giang
30
ư
ậ ờ ườ ề ậ ặ ồ ể L u tr session v i d li u l n cũng có th làm ch m i truy c p đ ng th i, ớ ữ ệ ớ t n u nhi u ng
ỗ ữ ệ ế server, đ c bi ả ẽ do m i user s có b n copy session riêng!
Session
M i user s đ
ẽ ượ ỗ ị ọ ộ ị c gán m t giá tr g i là Session id, giá tr
này là duy nh tấ
Đ c l u tr trong nonpersistent cookie cho đ n khi
ượ ư ữ ế
ệ trình duy t đóng.
Session state s d ng cú pháp collection nh là view state
int count; if (Session["Count"] == null) count = 0; else count = (int)Session["Count"]; count++; Session["Count"] = count;
Nguyen Ha Giang
31
ử ụ ư
ấ
Session – c u hình
ể ờ ố ế ậ ủ Th i gian s ng c a session có th thi t l p thông qua
web.config
ầ
Trong tr
Nguyen Ha Giang
32
ườ ữ ư http://server/(h44a1e55c0breu552yrecobl)/page.aspx ng này Session ID l u tr trong URL
Cookie
ữ ạ ỉ ỗ ư Ch cho phép l u tr d ng chu i
L u tr trên máy c a client (trong b nh ho c file text
ữ ủ ặ ớ ộ
ư nh )ỏ
Lifetime đ
ế ậ ượ ở i l p trình, đ ượ ử c s
ườ ậ ầ c thi ề t l p b i ng ụ d ng trong nhi u trang và trong các l n visit site
Ph m vi toàn b ng d ng .NET
ộ ứ ụ ạ
Không b o m t, do toàn b d li u đ
ả ộ ữ ệ ượ ở c g i cho client.
ễ ể ậ Cookie có th modify d dàng.
T
ự ư ế ỉ ử ụ ữ ệ ạ ng t nh view state, h n ch ch s d ng d li u
Nguyen Ha Giang
33
ươ nhỏ
Th
ườ ữ ư ể ng l u tr thông tin cá nhân đ custom cho website.
Cookie
Nguyen Ha Giang
34
Cookie
ế ậ ể Đ thi ộ t l p m t cookie:
ố ượ
ạ
T o đ i t
ng
System.Net.HttpCookie
ạ ữ ệ
ạ
ỗ T o d li u d ng chu i
ủ
ng
ố ượ Response c a trang
Add đ i t web hi n t
ố ượ ng cookie vào đ i t ệ ạ i
HttpCookie cookie = new HttpCookie("Account"); cookie["Username"] = “Nguyen Ha Giang"; Response.Cookies.Add(cookie);
Nguyen Ha Giang
35
Cookie
Đ truy c p cookie
ể ậ
ử ụ
ể ấ
S d ng đ i t
ố ượ Request đ l y cookie
ng
ể
Ki m tra xem cookie khác null?
ậ
ộ
ị
Truy c p giá tr cookie qua thu c tính key
string str = ""; HttpCookie cookie = Request.Cookies["Account"]; if (cookie != null)
str = cookie["Username"];
Nguyen Ha Giang
36
Cookie
Cookie đ
Persistent cookies/permanent cookie
ư
ế ạ
ủ
ạ
L u tr trong đĩa c ng c a client cho đ n khi h t h n, d ng
ế ạ
ượ
ứ ế ậ c thi
ế t l p ngày h t h n (expiration date)
ữ cookie này đ
Non persistent cookie/temporary cookie
ế ạ
ị
ữ c l u tr trong
Không đ nh nghĩa th i gian h t h n, cookie đ ờ ượ ư ệ ế
browser memory, k t thúc khi đóng trình duy t!
ượ ạ c phân làm 2 lo i
Không có s khác nhau khi s d ng persistent và non
ử ụ ự
Nguyen Ha Giang
37
persistent cookie!
Cookie
Khai báo Persistent cookie
HttpCookie cookie = new HttpCookie("Account"); cookie["Username"] = "Nguyen Ha Giang"; cookie["email"] = "NguyenHa.Giang@yahoo.com";
ế ạ
ờ
// khai báo th i gian h t h n cho cookie cookie.Expires = DateTime.Now.AddDays(5);
ủ
// add cookie vào response c a trang web Response.Cookies.Add(cookie);
Nguyen Ha Giang
38
Query String
ư ả ố
ể
ữ ớ ạ Query string không ph i là d ng state gi ng nh session, cookie, hay view state. Chính xác là cách chuy n thông tin gi a trang web v i nhau.
ể ở
Query string và view state có th k t h p đ g i thông tin ớ client đ n server mà không c n s d ng b t c b nh
ể ế ợ ầ ử ụ ấ ứ ộ
ế ừ t trên server.
Query string là ph n c a URL đ
ầ ủ ượ c thêm vào trang web,
ấ ấ ỏ sau d u ch m h i.
http://www.myweb.com?var1=Value1&Var2=Value2
Nguyen Ha Giang
39
Query String
M t URL request nh sau:
http://mycompany.com/detail.aspx?id=10
Ý nghĩa:
ư ộ
ở
ị
G i id có giá tr là 10 cho trang detail.aspx
Đ l y thông tin c a query string c a trang web, s d ng
ử ụ ể ấ ủ ủ
Request.QueryString[]
string sid = Request.QueryString[“id"];
Nguyen Ha Giang
40
Query String
Demo query string
T o m t ng d ng truy c p CSDL GameList g m 2 trang
ộ ứ ụ ạ ậ ồ
ể
ị
GameList.aspx: hi n th tên t
t c các game có trong
ỗ
ớ
ủ
ớ
ấ ả ạ
ế
ạ database, v i m i game t o url d ng querystring v i id c a ẽ ở game đó, user kích vào s m ra trang GameDetail.aspx cho ủ t thông tin c a game đó phép xem chi ti
ấ ả ề
ủ
GameDetail.aspx: l y id t GameList và tr v chi ti
ừ querystring, đ c CSDL ế ấ ả t t
ọ t c thông tin c a game.
Nguyen Ha Giang
41
Query String
ứ ả ơ ỉ
Nguyen Ha Giang
42
ụ ả Database GameList đ n gi n ch có b ng DanhMuc: ch a danh m c các game online.
Query String
T o trang GameList.aspx
ạ
ẽ ể
ị
Trang này có control là label s hi n th danh sách các tên
game.
Label: có id là “lblGameList”
Nguyen Ha Giang
43
Query String
Ph n x lý truy c p database
ầ ử ậ ở trang GameList.aspx
ế ố
ử ụ
L u ý: code k t n i database này s d ng SQL Server 2005
ư ả b n express.
GameList.aspx
protected void Page_Load(object sender, EventArgs e) { if ( !IsPostBack ) { string sConn = @"server=.\SQLEXPRESS;
database=GameList; Trusted_connection=true";
ạ ố ượ
ế ố ng k t n i
ấ ấ
ả ề ố ượ
ự
ấ
SqlConnection cnn = new SqlConnection(sConn); // t o đ i t try { ở ế ố cnn.Open(); // m k t n i string query = "select ID,TenGame from DanhMuc"; // truy v n l y ds game SqlCommand cmd = new SqlCommand(query, cnn); SqlDataReader reader; reader = cmd.ExecuteReader(); // th c thi câu truy v n tr v đ i t
ng reader
ầ
ế //… ph n ti p qua slide
Nguyen Ha Giang
44
Query String
ầ
ủ
ế
ướ c
// .. Ph n ti p theo c a silde tr string str;
ấ
ế
ế
ả
ả
ế
ừ
ư
ạ
ọ
ứ
T o hyperlink g i trang ử ụ GameDetail.aspx s d ng query string ủ ch a id c a game
ị ế
ỗ
ể
i
if (reader.HasRows) { // n u truy v n có k t qu
ộ
lblGameList.Text = ""; // xóa n i dung label
ệ
while (reader.Read()) { // duy t qua t ng k t qu
str = string.Format("{1}
",
reader["id"], reader["TenGame"]);
lblGameList.Text += str; // đ a vào label
}
}
reader.Close();
cnn.Close();
}
catch (Exception ex) {
Response.Write(ex.Message); // hi n th n u có l
}
} // end if (!IsPostBack) } // end method Page_Load
Nguyen Ha Giang
45
Query String
Trang GameList.aspx khi th c thi
ự
Danh sách các tên game ấ l y trong database
ế ủ
ế
ậ
Hyperlink xem chi ti
t c a “Thu n Thiên Ki m”
Nguyen Ha Giang
46
Query String
T o trang GameDetail.aspx
ạ
ứ
ế ủ
Trang này có 4 label ch a các thông tin chi ti
t c a game:
ấ
Tên game: lblTenGame, nhà s n xu t: lblNSX, nhà phát hành: ả
ể ạ lblNPH, th lo i: lblTheLoai
GameDetail.aspx
Nguyen Ha Giang
47
Query String
Ph n x lý c a GameDetail.aspx
ầ ử ủ
ấ
ố
ể
i hay không
protected void Page_Load(object sender, EventArgs e) { // l y query string ố string sid = Request.QueryString["id"]; // tham s “id” ồ ạ if (sid != null) // ki m tra xem tham s này có t n t { // truy cap database de lay du lieu string sConn = @"server=.\sqlexpress;
database=gamelist; trusted_connection=true";
ạ ố ượ
ế ố ng k t n i
ự
ấ
SqlConnection conn = new SqlConnection(sConn); // t o đ i t try { ở ế ố conn.Open(); // m k t n i string query = string.Format("select * from DanhMuc where ID={0}",sid); SqlCommand cmd = new SqlCommand(query, conn); SqlDataReader reader; reader = cmd.ExecuteReader(); // th c thi câu truy v n
ế
ế
ầ
// ph n ti p theo trong slide k …
Nguyen Ha Giang
48
Query String
ế
ủ
ướ c ế
ữ ệ
// ti p theo c a silde tr if (reader.HasRows) // n u có d li u
ữ ệ
ỗ
ể
ị
i
{ ọ reader.Read(); // đ c 1 dòng d li u lblTenGame.Text = reader["TenGame"].ToString(); lblNSX.Text = reader["NhaSanXuat"].ToString(); lblNPH.Text = reader["NhaPhatHanh"].ToString(); lblTheLoai.Text = reader["TheLoai"].ToString(); } ế ố reader.Close(); conn.Close(); // đóng k t n i } catch (Exception ex) { Response.Write(ex.Message); // hi n th thông báo l } } // end if (sid !=null) } // end method Page_Load
Nguyen Ha Giang
49
Query String
ạ Ch y demo
ổ
id = 5 là mã game C Long
Nguyen Ha Giang
50
Crosspage Postback
Cross page postback là d ng postback g i t
ở ớ ạ i trang khác
ư Các button control nh Button, ImageButton và ộ ề LinkButton đ u có thu c tính PostBackUrl
Đ s d ng Crosspage postback
ể ử ụ
ế ậ
ế
ể
ầ
Thi
t l p PostBackUrl cho web form c n chuy n đ n
Khi user click vào button
ẽ ượ ở ớ
ớ ớ ấ ả
ị ủ
Page s đ
i URL m i v i t
t c các giá tr c a các
ệ
ờ
c g i t control trong trang aspx hi n th i.
Nguyen Ha Giang
51
Crosspage Postback
Trang cross page có th truy c p trang tr
ậ ướ c thông qua
ộ thu c tính ể PreviousPage
protected void Page_Load(object sender, EventArgs e) { if (PreviousPage != null) { lblInfo.Text = "You came from " + PreviousPage.Header.Title; } }
Nguyen Ha Giang
52
Crosspage Postback
Đ truy c p chi ti
ể ế ơ ị ủ t h n, các giá tr c a control trên form,
ế ớ
ậ ầ ả thì c n ph i gán tham chi u PreviousPage cho l p page ươ ứ ng ng! t
Ta có th add thu c tính (public) vào trang ngu n và đ c
ồ ọ
ở
ộ ể trang đích. chúng if (PreviousPage != null) { SourcePage prevPage = PreviousPage as SourcePage; if (prevPage != null) { lblInfo.Text = "Welcome" + prevPage.NameEntry; } } ớ ủ
ộ
ủ ớ Thu c tính c a l p SourcePage
Tên l p c a trang source
Nguyen Ha Giang
53
Crosspage Postback
Minh h a crosspage Postback
ọ
T o 2 trang
ạ
ứ
ậ
SourcePage.aspx: ch a form nh p thông tin user
ấ
ừ
ừ
TargetPage.aspx: l y thông tin t
user t
SourcePage và
ể
ệ
ị
hi n th lên trình duy t.
SourcePage.aspx
Nguyen Ha Giang
54
Crosspage Postback
Mô t
ể
ả
Id control
Ki u control
ộ Thu c tính
ễ Di n gi
i
ậ
txtUsername
TextBox
Nh p tên user
ậ
ỉ
ị
txtEmail
TextBox
Nh p đ a ch email
ậ
txtCompany
TextBox
Nh p tên công ty
ự
btnPostInfo
Button
PostBackUrl = ~/TargetPage.aspx
Button th c thi thao tác Cross Page Postback
Nguyen Ha Giang
55
ả ủ control c a trang SourcePage.aspx
Crosspage Postback
Khai báo thu c tính PostBackUrl cho button btnPostInfo
Khai báo URL cho PostBackUrl
Nguyen Ha Giang
56
ộ
Crosspage Postback
Mô t
ả trang TargetPage.aspx
ấ
ừ
ể
ị
L y thông tin t
ệ SourcePage.aspx và hi n th ra trình duy t
TargetPage.aspx
ể
ả
Id control
Ki u control
ộ Thu c tính
ễ Di n gi
i
ể
lblUsername
Label
ị Hi n th tên user
ể
lblEmail
Label
ị Hi n th email
ể
lblCompany
Label
ị Hi n th công ty
Nguyen Ha Giang
57
Crosspage Postback
Ph n x lý c a TargetPage l y thông tin t
ừ
previous page
ầ ử ấ ừ
SourcePage là class page ủ c a SourcePage.aspx
ố ượ
ế
ế
ế ng source tham chi u đ n previous page
ấ
ủ
// l y các control c a previous page (SourcePage.aspx) TextBox username = (TextBox) source.FindControl("txtUsername"); TextBox email = (TextBox) source.FindControl("txtEmail"); TextBox company = (TextBox)source.FindControl("txtCompany");
ủ SourcPage.aspx protected void Page_Load(object sender, EventArgs e) { ấ // l y thông tin t if (PreviousPage != null) { // bi n đ i t SourcePage source = PreviousPage as SourcePage;
ủ
ID c a control trong SourcePage.aspx
// gán thông tin cho các label lblUsername.Text = username.Text; lblEmail.Text = email.Text; lblCompany.Text = company.Text; } // end if } // end method Page_Load
Nguyen Ha Giang
58
Crosspage Postback
click
Nguyen Ha Giang
59
ạ Ch y demo