第13講 多網(wǎng)頁項(xiàng)目_第1頁
第13講 多網(wǎng)頁項(xiàng)目_第2頁
第13講 多網(wǎng)頁項(xiàng)目_第3頁
第13講 多網(wǎng)頁項(xiàng)目_第4頁
第13講 多網(wǎng)頁項(xiàng)目_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第十三講 多網(wǎng)頁項(xiàng)目 教學(xué)內(nèi)容一、向項(xiàng)目中添加網(wǎng)頁二、頁面間的跳轉(zhuǎn)三、使用查詢字符串傳送數(shù)據(jù)到下一頁四、添加網(wǎng)頁屬性在頁面間交換數(shù)據(jù)教學(xué)目標(biāo) 掌握處理頁面間關(guān)系的方法; 掌握查詢字符串傳送數(shù)據(jù)的方法; 掌握為頁面添加屬性的方法。2一、向項(xiàng)目中添加網(wǎng)頁(1/2) 每個(gè)ASP.NET應(yīng)用程序項(xiàng)目建立時(shí),開發(fā)器會自動創(chuàng)建一個(gè)WebForm1.aspx的網(wǎng)頁,該網(wǎng)頁為項(xiàng)目的啟動網(wǎng)頁。 若要向項(xiàng)目中添加網(wǎng)頁,則:在“項(xiàng)目”菜單的下拉菜單上單擊【添加Web窗體】,在模板區(qū)選擇“Web窗體”,在名稱框內(nèi)輸入網(wǎng)頁的名稱,單擊【打開】按鈕,如右圖。一個(gè)新的網(wǎng)頁被添加到項(xiàng)目中。3一、向項(xiàng)目中添加網(wǎng)頁(2/2) 從

2、解決方案資源管理器中可以看到增加了網(wǎng)頁WebForm2.aspx,如右圖。 雙擊“WebForm1.aspx”或“WebForm2.aspx” ,可以在設(shè)計(jì)視圖區(qū)切換當(dāng)前的工作網(wǎng)頁。 開發(fā)器默認(rèn)第一個(gè)網(wǎng)頁為啟動網(wǎng)頁,若需要將“WebForm2.aspx”設(shè)置為項(xiàng)目的啟動網(wǎng)頁,右擊 “WebForm2.aspx” ,在彈出菜單上單擊【設(shè)為起始頁】即可。 4二、頁面間的跳轉(zhuǎn) (1/5) 從一個(gè)頁面跳轉(zhuǎn)到另一個(gè)頁面有多種方法實(shí)現(xiàn)。 (一)在瀏覽器的地址欄中輸入目的網(wǎng)頁的URL 在瀏覽器的地址欄中輸入目的網(wǎng)頁的URL,可以定向到新的網(wǎng)頁。 (二)調(diào)用腳本打開另一個(gè)窗口 調(diào)用JavaScript腳本的w

3、indow.open()方法,可以打開瀏覽器的另一個(gè)窗口,在該方法的第一個(gè)參數(shù)中指定需要展示的頁面的URL。打開的另一個(gè)窗口為非模態(tài)窗口,可以在它與別的窗口間切換焦點(diǎn)。 也可以調(diào)用JavaScript腳本的window.showModalDialog()方法顯示一個(gè)模態(tài)對話框,在該方法的第一個(gè)參數(shù)中指定需要展示的頁面的URL。模態(tài)對話框獨(dú)占屏幕焦點(diǎn),此時(shí)不能夠?qū)⒔裹c(diǎn)切換到別的窗口。 5(三)在頁面上增加導(dǎo)航按鈕 Web窗體服務(wù)器控件HyperLink專門為導(dǎo)航到新的URL而設(shè)計(jì)。該控件的NavigateUrl用來指定導(dǎo)航目標(biāo)。該屬性可以在屬性窗口或程序代碼中指定。如指定控件HyperLink1

4、導(dǎo)航到WebForm2.aspx,則其HTML標(biāo)記為: 跳轉(zhuǎn)到第二頁 由于HyperLink控件專門用來導(dǎo)航到新的URL,因此它沒有Click一類的事件來添加額外的代碼,若需要在程序中再次改變它的導(dǎo)航目標(biāo),在網(wǎng)頁或別的控件的事件中改變其NavigateUrl屬性就是。如: HyperLink1.NavigateUrl=WebForm3.aspx; 當(dāng)用戶單擊該控件時(shí),會導(dǎo)航到WebForm3.aspx上去。 二、頁面間的跳轉(zhuǎn) (2/5)6(四)利用DataGrid控件的超級鏈接列 當(dāng)瀏覽數(shù)據(jù)表的記錄時(shí)需要跳轉(zhuǎn)到它對應(yīng)的專門網(wǎng)站或網(wǎng)頁時(shí),使用DataGrid控件的超級鏈接列就可以實(shí)現(xiàn)。如數(shù)據(jù)表的

5、每一行記錄了一個(gè)學(xué)校的簡略資料,要實(shí)現(xiàn)導(dǎo)航到各學(xué)校的網(wǎng)站,只要將其網(wǎng)站的URL記錄在數(shù)據(jù)表的某列中,將該列聯(lián)系到DataGrid控件的超級鏈接列就可以。導(dǎo)航到網(wǎng)頁的做法類似。 (五)調(diào)用Response.Redirect方法 Response是ASP.NET的一個(gè)內(nèi)部對象,其類名為HttpResponse,主要的作用是輸出數(shù)據(jù)到客戶端。常用到2個(gè)方法: Write方法:輸出數(shù)據(jù)到客戶端。如 Response.Write(“Hello”); Redirect方法:將瀏覽器重定向到新的URL。二、頁面間的跳轉(zhuǎn) (3/5)7 可以在程序的任何位置使用Response.Redirect方法將瀏覽器重定

6、向到新的URL。如在登錄頁面中,當(dāng)驗(yàn)證了用戶的密碼和權(quán)限確認(rèn)其為合法用戶時(shí),就可以調(diào)用該方法定向到其他頁面上。方法是: Response.Redirect(“目標(biāo)URL”); 如: Response.Redirect(”WebForm2.aspx”); 當(dāng)該行被執(zhí)行時(shí),就跳轉(zhuǎn)到WebForm2.aspx頁面上。 Response.Redirect方法首先發(fā)送一個(gè)HTTP響應(yīng)到客戶端,通知客戶端跳轉(zhuǎn)到一個(gè)新的URL,然后客戶端再發(fā)送跳轉(zhuǎn)請求到服務(wù)器端。在頁面跳轉(zhuǎn)后其內(nèi)部控件保存的所有數(shù)據(jù)都將丟失。二、頁面間的跳轉(zhuǎn) (4/5)8(六)調(diào)用Server.Transfer方法 Server.Trans

7、fer方法的作用和調(diào)用方式與Response.Redirect基本是相同的。例如: Server.Transfer(“WebForm2.aspx”); 調(diào)用Server.Transfer方法跳轉(zhuǎn)到另一個(gè)頁面后,瀏覽器的地址欄中的信息仍然保持不變,表明重定向的請求是在服務(wù)器端進(jìn)行的,頁面跳轉(zhuǎn)時(shí)僅將頁面處理的控制權(quán)進(jìn)行了移交,瀏覽器不知道服務(wù)器執(zhí)行了一次頁面變換。因此,從A頁面跳轉(zhuǎn)到B頁面后,在B頁面中仍然可以提取到A頁面中的數(shù)據(jù),前提是,它們都是.aspx頁面。二、頁面間的跳轉(zhuǎn) (5/5)9三、使用查詢字符串在頁面間交換數(shù)據(jù)(1/3) 從A頁面跳轉(zhuǎn)到B頁面后,往往需要從A頁面?zhèn)魉鸵恍┬畔⒌紹頁面

8、中去。從一個(gè)頁面?zhèn)魉蛿?shù)據(jù)到另一個(gè)頁面可以使用查詢字符串、內(nèi)部對象或上一個(gè)網(wǎng)頁的公有數(shù)據(jù)等。 查詢字符串是附加在網(wǎng)頁URL后從“?”開始直到結(jié)尾的一串字符,當(dāng)瀏覽器從一個(gè)頁面重定向到另一個(gè)頁面時(shí), URL附帶查詢字符串一并傳送到目的頁面,因而在目的頁面中可以取得查詢字符串帶過來的信息。 10 1.構(gòu)造查詢字符串 查詢字符串由“屬性名=屬性值”的格式構(gòu)成,若有多個(gè)屬性,屬性間用“&”連接,中間不要留有空格。如: string URL=”WebForm2.aspx?name=張山&No=1000”; 因?yàn)檎麄€(gè)URL和查詢字符串一起構(gòu)成了一個(gè)字符串,若查詢字符串的某個(gè)屬性值為變量時(shí),該變量必須是str

9、ing類型。如上例可以這樣表示; string Name=”張山”; string Number=”1000”; string URL=”WebForm2.aspx?name=”+Name+”&No=”+Number; 三、使用查詢字符串在頁面間交換數(shù)據(jù)(2/3)112.解析查詢字符串 當(dāng)查詢字符串隨同URL一起被傳送到目標(biāo)頁面后,需要將其各個(gè)屬性值解析出來才能為程序所用。格式是: Request.Params“屬性名”。如解析上例的兩個(gè)屬性值: string Name=Request.Paramsname; string Number=Request.ParamsNo; 3.查詢字符串的應(yīng)用

10、 查詢字符串的使用簡單易行,一般的瀏覽器和客戶端裝置都能識別查詢字符串。一般限制查詢字符串的長度在255個(gè)字符之內(nèi),因此通過它不能攜帶過多的信息,也不能攜帶非字符串類型的信息,同時(shí)由于查詢字符串可以從瀏覽器的地址欄中直接看到,其保密性較差。 三、使用查詢字符串在頁面間交換數(shù)據(jù)(3/3)12四、添加網(wǎng)頁屬性在頁面間交換數(shù)據(jù)(1/7) 當(dāng)調(diào)用Server.Transfer方法從A頁面跳轉(zhuǎn)到B頁面后,可以在B頁面中通過上下文句柄獲取A頁面的實(shí)例,通過該實(shí)例訪問到A頁面的公有成員,如公有的字段、控件和屬性等。這需要向A頁面添加一些公有的屬性。 示例 添加網(wǎng)頁屬性將數(shù)據(jù)集傳送到下一個(gè)頁面 這個(gè)項(xiàng)目中有:

11、登錄頁面(login.aspx)和詳情頁面(detail.aspx) 2個(gè)網(wǎng)頁。登錄頁面連接到數(shù)據(jù)庫MMIS,將用戶輸入的賬號和密碼與數(shù)據(jù)表memberInfo中的賬號和密碼進(jìn)行核對。若為合法用戶,就將他的姓名和性別送入到詳情頁面,以便讓詳情頁面知道是誰登錄到了該頁面;若賬號或密碼有誤,則給出一個(gè)錯(cuò)誤信息后仍停留在登錄頁面。 13本例將用戶登錄時(shí)查詢到該用戶的數(shù)據(jù)放在一個(gè)數(shù)據(jù)集中,為Login頁面添加一個(gè)屬性將該數(shù)據(jù)集返回,以便在下一個(gè)頁面中訪問到這個(gè)數(shù)據(jù)集。當(dāng)調(diào)用Server.Transfer方法從Login頁面跳轉(zhuǎn)到detail頁面后,在detail頁面中通過上下文句柄獲取Login頁面的

12、實(shí)例,通過該實(shí)例訪問到Login頁面的數(shù)據(jù)集屬性,然后從數(shù)據(jù)集屬性中提取記錄的各個(gè)字段值。四、添加網(wǎng)頁屬性在頁面間交換數(shù)據(jù)(2/7)14四、添加網(wǎng)頁屬性在頁面間交換數(shù)據(jù)(3/7)1.程序運(yùn)行結(jié)果 登錄頁面 登錄后的頁面 152. 登錄頁面的后臺代碼 public class Login : System.Web.UI.Page protected DataSet myDataSet=new DataSet(); public DataSet LoginDataSet get return myDataSet; 四、添加網(wǎng)頁屬性在頁面間交換數(shù)據(jù)(4/7)16 單擊“登錄”按鈕,核對賬號和密碼 合

13、法用戶就跳轉(zhuǎn)到detail.aspx頁面 private void Button1_Click(object sender, System.EventArgs e) string Number=this.TextBoxID.Text; string Pass=this.TextBoxPass.Text; string connectionString=workstation id=localhost;initial catalog=MMIS;user id=sa; pwd=; SqlConnection myConnection=new SqlConnection(connectionStri

14、ng); SqlDataAdapter myDataAdapter=new SqlDataAdapter(); SqlCommand myCommand=myConnection.CreateCommand(); myCommand.CommandText=“select * from memberInfo where 賬號 =+Number+ and 密碼=+Pass+; 四、添加網(wǎng)頁屬性在頁面間交換數(shù)據(jù)(5/7)17myDataAdapter.SelectCommand=myCommand; int n=myDataAdapter.Fill(myDataSet,memberInfo); i

15、f(n=1) Server.Transfer(detail.aspx); else this.LabelMessage.Text=“賬號或密碼錯(cuò)誤”; 四、添加網(wǎng)頁屬性在頁面間交換數(shù)據(jù)(6/7)18 3. 詳情頁面的后臺代碼 private void Page_Load(object sender, System.EventArgs e) Login wfm1=(Login)Context.Handler; DataSet myDataSet=wfm1.LoginDataSet; string s=“請”+ myDataSet.TablesmemberInfo.Rows0姓名.ToString().Trim(); if(myDataSet.TablesmemberInfo.Rows0性別.ToString()=男) s+=先生核對您的資料; else s+=女士核對您的資料; this

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論