版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Web應用程序開發(fā)教程——ASP.NET+SQLServer
授課教師:職務:第7章ASP.NETAJAX服務器端編程課程描述AJAX全稱為AsynchronousJavaScriptandXML(異步JavaScript和XML),是一種創(chuàng)建交互式網頁應用的網頁開發(fā)技術。ASP.NETAJAX是免費的MicrosoftAJAX框架,用于構建交互式的Web應用程序,它可以支持各種流行的瀏覽器。本章將介紹如何使用ASP.NETAJAX開發(fā)Web應用程序。本章知識點ASP.NETAJAX基礎使用ScriptManager控件使用UpdatePanel控件實現網頁局部刷新使用UpdateProgress控件使用Timer控件7.1ASP.NETAJAX基礎Ajax的基本概念和特點下載和安裝ASP.NETAJAX7.1.1Ajax的基本概念和特點Ajax并不是一種技術,它是如下幾種技術的結合:使用XHTML+CSS來表示信息。使用JavaScript操作DocumentObjectModel進行動態(tài)顯示及交互。使用XML和XSLT進行數據交換及相關操作。使用XMLHttpRequest對象與Web服務器進行異步數據交換。使用JavaScript將所有這些綁定在一起。傳統(tǒng)Web應用程序模型Ajax應用程序的工作模型傳統(tǒng)Web應用程序采用同步的交互方式Ajax應用程序采用異步的交互方式7.1.2下載和安裝ASP.NETAJAX訪問下面的ASP.NETAJAX官網/ajaxASP.NETAJAXArchiveforASP.NET2.0下載頁面創(chuàng)建ASP.NETAJAX網站項目7.2使用ScriptManager控件ScriptManager控件可以實現網頁的局部刷新,所有需要支持ASP.NETAJAX的ASP.NET頁面上只能有一個ScriptManager控件。使用代碼來定義ScriptManager控件的方法如下:<asp:ScriptManagerID="ScriptManager1"runat="server"><AuthenticationService
Path=""
/><ProfileService
LoadProperties=""
Path=""
/><Scripts><asp:ScriptReference/></Scripts><Services>
<asp:ServiceReference
/></Services></asp:ScriptManager>ScriptManager控件的重要屬性和方法屬性或方法說明AllowCustomError和Web.config中的自定義錯誤配置區(qū)<customErrors>相聯(lián)系,表示是否使用<customErrors>配置,默認值為trueAsyncPostBackErrorMessage異步回傳發(fā)生錯誤時的自定義提示錯誤信息AsyncPostBackTimeout異步回傳時超時限制,默認值為90,單位為秒EnablePartialRendering是否支持頁面的局部更新,默認值為True,一般不需要修改ScriptMode指定ScriptManager發(fā)送到客戶端的腳本的模式,有4種模式:Auto,Inherit,Debug,Release,默認值為AutoScriptPath設置所有的腳本塊的根目錄,作為全局屬性,包括自定義的腳本塊或者引用第三方的腳本塊。如果在Scripts中的<asp:ScriptReference/>標簽中設置了Path屬性,它將覆蓋該屬性OnAsyncPostBackError異步回傳發(fā)生異常時的服務端處理函數,在這里可以捕獲一場信息并作相應的處理OnResolveScriptReference指定ResolveScriptReference事件的服務器端處理函數,在該函數中可以修改某一條腳本的相關信息如路徑、版本等7.3使用UpdatePanel控件實現網頁局部刷新UpdatePanel控件基礎使用ContentTemplate屬性ContentTemplateContainer屬性Triggers屬性在ScriptManager控件中注冊異步提交控件7.3.1UpdatePanel控件基礎使用代碼來定義簡單UpdatePanel控件的方法如下:<asp:UpdatePanel
ID="UpdatePanel1"
runat="server"><ContentTemplate><!--…--></ContentTemplate><Triggers><asp:AsyncPostBackTrigger
/><asp:PostBackTrigger
/></Triggers></asp:UpdatePanel>UpdatePanel控件的重要屬性屬性說明ChildrenAsTriggers當UpdateMode屬性為Conditional時,UpdatePanel中的子控件的異步回送是否會引發(fā)UpdatePanle的更新RenderMode表示UpdatePanel最終呈現的HTML元素。Block(默認)表示<div>,Inline表示<span>UpdateMode表示UpdatePanel的更新模式,有兩個選項:Always和Conditional。Always是不管有沒有Trigger,其他控件都將更新該UpdatePanel,Conditional表示只有當前UpdatePanel的Trigger,或ChildrenAsTriggers屬性為true時當前UpdatePanel中控件引發(fā)的異步回送或者整頁回送,或是服務器端調用Update()方法才會引發(fā)更新該UpdatePanel拖動UpdatePanel控件到網頁中7.3.2使用ContentTemplate屬性【例7.1】
演示使用UpdatePanel控件和ScriptManager控件實現網頁的局部刷新,在UpdatePanel控件中使用ContentTemplate屬性來定義其中包含的服務器控件。DropDownSelection_Change事件當用戶選擇不同的顏色時,引發(fā)DropDownSelection_Change事件,處理程序中可以根據選擇的顏色來設置日歷的背景,代碼如下:protectedvoidDropDownSelection_Change(objectsender,EventArgse){Calendar1.DayStyle.BackColor=System.Drawing.Color.FromName(ColorList.SelectedItem.Value);}7.3.3ContentTemplateContainer屬性如果希望通過編程的方式動態(tài)向UpdatePanel控件中添加服務器控件,則可以將動態(tài)生成的服務器控件添加到ContentTemplateContainer屬性中?!纠?.2】
在UpdatePanel控件中使用ContentTemplateContainer屬性動態(tài)添加一個Label控件和一個Button控件。
【例7.2】7.3.4Triggers屬性在ASP.NETAJAX中有兩種Triggers,即AsyncPostBackTrigger和PostBackTrigger。AsyncPostBackTrigge用來指定某個服務器端控件以及其將觸發(fā)的服務器端事件作為該UpdatePanel的異步更新觸發(fā)器,它需要設置的屬性有控件ID和服務端控件的事件;PostBackTrigger用來指定在UpdatePanel中的某個服務端控件,它所引發(fā)的回傳不使用異步回傳,而仍然是傳統(tǒng)的整頁回傳?!纠?.3】在UpdatePanel控件中分別使用兩種Triggers屬性來定義兩上Button控件,一個實現異步更新,另一個使用傳統(tǒng)的整頁回傳機制。網頁中有兩個按鈕,分別使用AsyncPostBackTrigger屬性和PostBackTrigger屬性來定義。單擊不同按鈕的效果是一樣的,即在下面的Label控件中顯示更新時間,只是一個按鈕采用異步回送方式,另一個按鈕采用整頁回送方式。7.3.5在ScriptManager控件中注冊異步提交控件即使對于不包含在UpdatePanel控件中的服務器控件,也可以使用ScriptManager控件的RegisterAsyncPostBackControl方法將其注冊為異步提交的控件,并調用UpdatePanel控件的Update方法進行更新。【例7.4】
演示ScriptManagert控件的RegisterAsyncPostBackControl方法的使用。在網頁中添加一個PanelUpdate控件,并在其中添加兩個Label控件,在PanelUpdate控件外部定義一個Button控件。【例7.4】<body><formid="form1"runat="server"><asp:ScriptManagerID="ScriptManager1"runat="server"/><div><asp:UpdatePanelID="UpdatePanel1"runat="server"UpdateMode="Conditional"><ContentTemplate><asp:LabelID="Label1"runat="server"Text="更新時間:"></asp:Label><asp:LabelID="Label2"runat="server"Text="Label"ForeColor="Red"></asp:Label><br/><br/></ContentTemplate></asp:UpdatePanel><asp:ButtonID="Button1"runat="server"Text="Button"OnClick="Button1_Click"/></div></form></body>【例7.4】在Form_Load方法中調用ScriptManagert控件的RegisterAsyncPostBackControl方法將Button1控件注冊為異步提交控件,代碼如下:publicvoidPage_Load(objectsender,EventArgse){ScriptManager1.RegisterAsyncPostBackControl(Button1);}在Button1_Click方法中調用UpdatePanel控件的Update方法,刷新UpdatePanel的內容,代碼如下:publicvoidButton1_Click(objectsender,EventArgse){this.Label2.Text=DateTime.Now.ToString();this.UpdatePanel1.Update();}【例7.4】7.4使用UpdateProgress控件UpdateProgress控件基礎應用在頁面中使用多個UpdateProgress控件7.4.1UpdateProgress控件基礎應用使用代碼來定義簡單UpdateProgress控件的方法如下:<asp:UpdateProgressID="UpdateProgress1"runat="server"></asp:UpdateProgress>【例7.5】演示使用UpdateProgress控件的方法。首先在網頁中添加一個UpdatePanel控件,然后在其中添加一個Label控件和一個Button控件?!纠?.5】單擊按鈕對應的代碼如下:protectedvoidButton1_Click(objectsender,EventArgse){Label1.Text="當時時間是:"+DateTime.Now.ToString()+"。";Thread.Sleep(5000);}【例7.5】
7.4.2在頁面中使用多個UpdateProgress控件如果頁面中存在多個UpdatePanel控件,則可以使用多個UpdateProgress控件,為每個UpdatePanel控件提供一個UpdateProgress控件,用于顯示其刷新時的說明文字或圖片。UpdateProgress控件的AssociatedUpdatePanelID屬性可以指定與其相關聯(lián)的UpdatePanel控件?!纠?.6】
演示為多個UpdatePanel控件定義各自UpdateProgress控件的方法。首先在網頁中添加兩個UpdatePanel控件,然后分別在其中添加一個Label控件和一個Button控件。將兩個UpdatePanel控件的UpdateMode屬性都設置為Conditional。在網頁中添加兩個UpdateProgress控件,在其中一個UpdateProgress控件中添加字符串“正在處理UpdatePanel1的刷新請求”,在另一個UpdateProgress控件中添加字符串“正在處理UpdatePanel2的刷新請求”。【例7.6】【例7.6】在裝載頁面時,需要與設置UpdateProgress控件相關聯(lián)的UpdatePanel控件,代碼如下:protectedvoidPage_Load(objectsender,EventArgse){UpdateProgress1.AssociatedUpdatePanelID="UpdatePanel1";UpdateProgress2.AssociatedUpdatePanelID="UpdatePanel2";}經過這樣的設置,UpdateProgress1控件將與UpdatePanel1控件相關聯(lián),而UpdateProgress2控件將與UpdatePanel2控件相關聯(lián)。單擊按鈕的程序與例7.5中類似,代碼如下:protectedvoidButton1_Click(objectsender,EventArgse){this.Label1.Text=DateTime.Now.ToString();Thread.Sleep(5000);}protectedvoidButton2_Click(objectsender,EventArgse){this.Label2.Text=DateTime.Now.ToString();Thread.Sleep(5000);}【例7.6】7.5使用Timer控件使用Timer控件可以設置一個時鐘,定義在一定時間間隔內在網頁內的局部刷新。一個T
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度二手房交易貸款貸前審查服務合同3篇
- 2025版高端醫(yī)療設備訂單式購銷合同
- 二零二五年度二手車售后服務買賣合同規(guī)范
- 2025年度洗衣機產品展示會場地租賃合同范本3篇
- 2024年酒店賓客服務條款詳細合同
- 2025年度海洋工程設備安裝及檢修服務合同2篇
- 二零二五年度借款合同標的還款資金監(jiān)管方案3篇
- 2025無固定期限勞動合同解除賠償
- 2025年度體育場館員工安全服務責任合同
- 2025版綠色建筑改造BT項目合同范本3篇
- 七年級道德與法治論文2000字(合集六篇)
- 嚴重精神障礙患者健康管理服務規(guī)范
- 風險預測分析及風險與機遇評估分析表
- 高中日語宣講 試聽課件
- 壓力彈簧力度計算器及計算公式
- 新生兒窒息診斷地專家共識
- 2023年重慶市旅游業(yè)統(tǒng)計公報要點
- 器械清洗的資料
- 路立得4.1roadleaderv3.0說明書Roadleader是鴻業(yè)研制的BIM系列軟件之一旨在
- 陜西省教育科學規(guī)劃課題開題報告
- 三大構成之立體構成-課件
評論
0/150
提交評論