




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、ModalPopupExtender控件屬性、功能、實例演示和使用方式詳解ModalPopupExtender 控件功能描述 1ModalPopupExtender 控件屬性描述 1ModalPopupExtender 功能演示實例 1客戶端使用方式 2服務(wù)器端使用方式 4ModalPopupExtender 控件功能描述 以模式窗口的方式彈出客戶或服務(wù)器控件 , 以突出顯示 ! 彈出的一般是 DIV 或 PANEL.ModalPopupExtender 控件屬性描述 TargetControlID :控制是否彈出的控件的 ID.PopupDragHandleControlID : 允許拖拽的
2、控件的 ID. PopupControlID: 指定要彈出的控件的 ID. BackgroundCssClass: 指定彈出控件后其它內(nèi)容的樣式 . DropShadow: 彈出的控件是否有陰影效果 .OkControlID: 確認(rèn)按鈕的 ID.OnOkScript : 單擊確認(rèn)按鈕時要執(zhí)行的腳本方法 CancelControlID : 取消按鈕的 ID.OnCancelScript : 單擊取消按鈕時要執(zhí)行的腳本方法 .X,Y : 指定彈出層的位置 .RepositionMode : 指示當(dāng)頁面窗口調(diào)整大小或滾動時 , 彈出層是否要進行位置移動 .ModalPopupExtender 功能演
3、示實例 頁面代碼 代碼 <style type="text/css"> .modalBackground background-color:Gray; filter:alpha(opacity=50);opacity:0.5;.modalPopupbackground-color:White;opacity:0;</style><div><asp:Button runat="server" ID="btnViewMore" Text="More" /><asp:
4、Panel ID="pnlViewCustomer" runat="server" CssClass= "modalPopup" style="display:none;"><div style="margin:10px"><h1>The service is not available in <span id="Country"></span>.</h1><asp:Button runat="
5、server" ID="viewBox_OK" Text="OK" /></div></asp:Panel><ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender2" runat="server" TargetControlID="btnViewMore" Drag ="true"PopupDragHandleControlID="pnlViewCustomer&qu
6、ot;PopupControlID="pnlViewCustomer"BackgroundCssClass="modalBackground"DropShadow="false"OkControlID="viewBox_OK"></ajaxToolkit:ModalPopupExtender></div>例如,半透明陰影遮罩要為ModalPopupExtender添加半透明陰影,就像官方網(wǎng)站上的案例一樣,需要定義一個CSS類,并指派到 BackgroundCssClass 屬性上半透明
7、背景 css 可以如下:<style type="text/css">.modalBackgroundposition: absolute;z-index: 100;top: 0px;left: 0px;background-color: #000;filter: alpha(opacity=60);-moz-opacity: 0.6;opacity: 0.6;</style>ModalPopupExtender 控件主要有兩種使用方式:客戶端使用方式和服務(wù)器端使用方式??蛻舳耸褂梅绞娇蛻舳耸褂梅绞接挚梢苑譃閮煞NA. 直接設(shè)置 OKControllD
8、的方式ModalPopupExtender 控件在使用時必須要設(shè)置 TargetControlID 和 PopupControlID 這兩個屬性,我的理 解是,對于Extendercontrol 而言TargetControlID屬性必須指定,否則就不知道在哪個DOM元素上附加客戶端行為了。 PopupControlID表示要彈出的仿模式窗口的DOM元素,常見的是Panel控件,這個如果不指定,也沒有意義。有時,在執(zhí)行上下文中可能要在確認(rèn)這個模式窗口時,執(zhí)行一些腳本,則可以設(shè)置 OnOKScript 屬性,指明確認(rèn)時要執(zhí)行的腳本函數(shù)。B. 獲取一個ModalPopupBehavior實例的方式
9、。如果頁面上放置了 ModalPopupExtender 控件則可以用 $find 方法得到一個 ModalPopupBehavior 實例,這 樣就可以調(diào)用 ModalPopupBehavior實例的任何方法了,如 hide、show等,此時客戶端的行為可以完全自 己控制了。這種情況下 ModalPopupExtender 控件必須要設(shè)置 BehaviorID 屬性,否則無法用 $find 方法來 獲取 ModalPopupBehavior 實例。有時,我們會感覺直接調(diào)用 ModalPopupBehavior 實例的方法比較麻煩,可以給 ModalPopupBehavior 實例 添加一些事
10、件,以方便我們添加一些自定義控制,如下圖,OUntitled Page二頁面垃)邛工具迎八誚局長職員+添加*涪召© Inttrntt LOOSl 我們在編輯一個文本框的內(nèi)容時,在模式窗彈岀之后,同時讓CheckBox選中文本框中的值,這是需要一個OnAfterShown事件。有時在點擊確認(rèn)時,需要驗證錄入數(shù)據(jù)的正確性,需要一個OnBeforeOK事件,如果驗證不能通過就取消提交。要實現(xiàn)這樣的功能我們需要給ModalPopupExtender控件添加相應(yīng)屬性,我們以O(shè)nBeforeOK事件為例說明具體步驟:第一步,給 ModalPopupExtender 控件添加 OnBeforeOK
11、屬性/ <summary>/確認(rèn)之前發(fā)生的事件/ </summary>DefaultValue ("")ExtenderControlEvent ClientPropertyName ("beforeOK")public string OnBeforeOKget return GetPropertyValue( "OnBeforeOK", string .Empty); set SetPropertyValue( "OnBeforeOK", value ); 這里要注意 ExtenderCo
12、ntrolEvent Attribute 的使用。第二步,給ModalPopupBehavior添加相應(yīng)方法,來訂閱、取消相應(yīng)事件,及觸發(fā)事件的方法。add_beforeOK: function (handler) this .get_events().addHandler( 'beforeOK' , handler);,remove_beforeOK: function (handler) this .get_events().removeHandler( 'beforeOK' , handler);,raiseBeforeOK:function (event
13、Args) var handler = this .get_events().getHandler( 'beforeOK');if (handler) handler( this , eventArgs);,第三步,修改相應(yīng)方法的代碼,觸發(fā)事件_onOk: function (e) var element = $get( this ._OkControlID);if (element && !element.disabled) var eventArgs = new Sys.CancelEventArgs();this .raiseBeforeOK(eventA
14、rgs);if (!eventArgs.get_cancel() if ( this .hide() && this ._OnOkScript) window.setTimeout( this ._OnOkScript, 0);e.preventDefault();return false ;,這里修改了 _onOk 方法,也可以根據(jù)情況修改其他方法。第四步,使用 ModalPopupExtender 控件時,為 OnBeforeOK 屬性賦值,此屬性為一個腳本函數(shù)。這個函數(shù) 中,我們可以執(zhí)行 args.set_cancel(true); 從而阻止 hide 方法和 OnOkS
15、cript 腳本的執(zhí)行。 客戶端使用的方式可以任意發(fā)揮, OnOKScript 屬性掛接的函數(shù)完全可以使用 Sys.Net.WebRequest 發(fā)起異 步請求,獲取服務(wù)器端的信息。服務(wù)器端使用方式這種方式與傳統(tǒng)的服務(wù)器控件的使用方式相同,就是直接調(diào)用 ModalPopupExtender 控件的 Show() 方法和 Hide() 方法來控制模式窗口的現(xiàn)實與隱藏,其實也是通過在客戶端生成這樣一句腳本來實現(xiàn)的:( function () var fn = function () AjaxControlToolkit.ModalPopupBehavior.invokeViaServer(
16、9;programmaticModalPopupBehavior' , true );Sys.Application.remove_load(fn);Sys.Application.add_load(fn);)();在服務(wù)器端調(diào)用 ModalPopupExtender 控件的 Show() 方法或 Hide() 方法有個缺點,就是會引起回發(fā),用戶 體驗不好。我們可以將彈出的模式窗口(一個 panel 控件)放到一個 UpdatePanel 控件中,并將觸發(fā)按鈕 注冊為異步回發(fā)按鈕來改善用戶體驗。一個常見的例子是 GridView 配合 FormView 或者 DetailView 進行
17、 業(yè)務(wù)對象的修改,頁面數(shù)據(jù)用GridView顯示,修改時,用模式窗彈出一個FormView,修改完畢保存到數(shù)據(jù)庫,并更新 GridView (當(dāng)然就地編輯的話,直接用 UpdatePanel 即可)。 具體實現(xiàn)步驟如下: 第一步:建立 GridView<asp:UpdatePanel UpdateMode="Conditional" ID="upXXXXX" runat="server"><ContentTemplate><xx:XXGridView id="gvDDDDDD" run
18、at="server" DataKeyNames="Id" AllowSorting="True" skinid="PagingGridView" DataSourceID="ods" EnableViewState="False"><Columns><asp:BoundField DataField="CreatedDate" HeaderText="XXXXXX" SortExpression="C
19、reatedTime"/><asp:BoundField DataField="CreatedBy" HeaderText="CCCCCC" SortExpression="CreatedBy" /><asp:BoundField DataField="Name" HeaderText="CCCCC" /><asp:BoundField DataField="Comment" HeaderText="CCCCCC&quo
20、t; /> <asp:TemplateField><ItemTemplate><asp:LinkButton id="btnEdit" runat="server" CommandName="Select" OnClick="btnEdit_Click">編輯</asp:LinkButton></ItemTemplate></asp:TemplateField><asp:CommandField ShowDeleteButton=&
21、quot;True" DeleteText=" 刪除 " /></Columns></xx:XXGridView></ContentTemplate><Triggers><asp:AsyncPostBackTrigger ControlID="btnSave" /><asp:AsyncPostBackTrigger ControlID="btnOK" /></Triggers></asp:UpdatePanel><as
22、p:ObjectDataSource id="ods" runat="server" EnablePaging="True"TypeName="XXXXXX"SelectMethod="GetPaged" SelectCountMethod="GetCount" SortParameterName="sortExpression"DeleteMethod="DeleteById"><SelectParameters>
23、<huag:WhereClauseParameter Name="whereClause" QueryStringField="id" Type="String"DataField="XXId"></huag:WhereClauseParameter></SelectParameters></asp:ObjectDataSource>第二步:建立彈出的層,仿模式窗口<asp: Panel ID="pnlPopup" runat ="
24、server" CssClass ="x-pne" Width ="460px" style ="display:none;"> <asp: UpdatePanel ID ="updDetail"runat ="server" UpdateMode="Conditional"><ContentTemplate ><asp: Button id ="btnShowPopup" runat ="serve
25、r" style ="display:none" /><ajaxToolKit : ModalPopupExtender ID="mdlPopup" runat ="server"BehaviorID ="xxxEdit"TargetControlID ="btnShowPopup"PopupControlID ="pnlPopup"CancelControlID ="btnClose" BackgroundCssClass =&qu
26、ot;modalBackground" PopupDragHandleControlID ="pnlDrag"/><asp: Panel ID ="pnlDrag" runat ="server" CssClass ="corner-bg x-pne-lt x-pne-left dragTitle"><div class ="corner-bg x-pne-rt x-pne-right"><div class ="corner-bg x-p
27、ne-t"><div class ="x-pne-btn" onclick ="$find('xxxEdit').hide();"></ div >vdiv class ="x-pne-caption font dragTitle"><span>標(biāo)題 </ span></ div ></ div >v/ div >v/ asp: Panel>vdiv class ="side-bg x-pne-l&quo
28、t;>vdiv class ="side-bg x-pne-r">vdiv class ="x-pne-c" style ="width: 448px; height: 300px">vdiv id ="contentPanel" style ="padding-left:10px;">v br />/ 這里是 FormView 的內(nèi)容,完全可以使用一個 FormView 控件,這里沒有給出<table width ="100%">&
29、lt;tr ><td style ="width: 100px"> 內(nèi)容 1</ td ><td ><asp: TextBox ID="txtEdit1" runat ="server" CssClass ="textField text-bg border-blur"Width ="90%"></ asp: TextBox ></ td ></ tr ><tr ><td style =&
30、quot;width: 100px"> 內(nèi)容 2</ td ><td ><asp: TextBox ID="txtEdit2" runat ="server" CssClass ="text-bg border-blur" TextMode="MultiLine" Rows="14" Width ="92%"></ asp: TextBox ></ td ></tr ><tr >
31、;style ="padding-top:10px;">div ><td colspan ="2" align ="center"<table width ="60%" ><tr align ="center"> <td ><div class ="btn-side btn-bg"></style ="background-position: 0px 168px; width:Text =&qu
32、ot; 確定 " CssClass ="font"<div class ="btn-body btn-bg"66px">< asp: Button ID ="btnOK" runat ="server OnClick ="btnOK_Click" /></ div ><divclass="btn-side btn-bg"style ="background-position: 0px 189px"></div ></td<td><divclass="btn-side btn-bg"></div ><div66px">< asp:="btn-body btn-bg"<divclassBut
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六年級上冊數(shù)學(xué)教案- 1.6圓的面積(一) 北師大版
- 合同制消防員報名表(2025年版)
- 一年級上冊數(shù)學(xué)教案-小雞吃食 10的加減法-北師大版
- 統(tǒng)編版語文一年級下冊第一單元1春夏秋冬 公開課一等獎創(chuàng)新教案(2課時)
- 2025年??诮?jīng)濟學(xué)院單招職業(yè)技能測試題庫及參考答案
- 2024年液位傳感器項目資金籌措計劃書代可行性研究報告
- 2025年湖南省株洲市單招職業(yè)適應(yīng)性測試題庫帶答案
- 2025年度學(xué)校代課教師教學(xué)資源共享平臺建設(shè)合同
- 2025年度客戶信息保密外包服務(wù)合同
- 2025年度電信服務(wù)合同單方違約解除賠償倍數(shù)計算標(biāo)準(zhǔn)合同
- 骶髂關(guān)節(jié)損傷郭倩課件
- 教學(xué)課件-電力系統(tǒng)的MATLAB-SIMULINK仿真與應(yīng)用(王晶)
- GB/T 26189.2-2024工作場所照明第2部分:室外作業(yè)場所的安全保障照明要求
- 新教科版一年級科學(xué)下冊第一單元《身邊的物體》全部課件(共7課時)
- 鹽城江蘇鹽城市住房和城鄉(xiāng)建設(shè)局直屬事業(yè)單位市政府投資工程集中建設(shè)管理中心招聘4人筆試歷年參考題庫附帶答案詳解
- 2024年黑龍江職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 2024年南京旅游職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 醫(yī)院教學(xué)秘書培訓(xùn)
- 2025江蘇常州西太湖科技產(chǎn)業(yè)園管委會事業(yè)單位招聘8人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年北京控股集團有限公司招聘筆試參考題庫含答案解析
- 小學(xué)教室衛(wèi)生管理
評論
0/150
提交評論