DevExpress Asp.net(4) ASPxCallbackPanel的基本使用
AspxCallbackPanel主要作用是對CallbackPanel內的內容進行非同步重新整理,實現此種效果的方法有很多,如Microsoft AJAX控制元件中的UpdatePanel,比這種方式更為方便和好用.
下面這個例子就是通過一個ListBox,從客戶端回撥AspxCallbackPanel,從而更新AspxCallbackPanel內的MultiView控制元件顯示資訊。首選,先在頁面中放置一個AspxCallbackPanel控制元件,並設定ClientInstanceName屬性為“CallbackPanel”。
程式碼如下:
<dxcp:ASPxCallbackPanel ID="ASPxCallbackPanel" runat="server" ClientInstanceName="CallbackPanel"
OnCallback="ASPxCallbackPanel_Callback" Width="100%">
dxcp:ASPxCallbackPanel>
設定ASPxCallbackPanel的ClientInstanceName屬性,並註冊OnCallback伺服器事件.上一節已經說明,DevExpress的Aspx系統控制元件的非同步更新方式都是一樣的,所以AspxCallbackPanel也同樣,註冊伺服器端的OnCallback事件,並從客戶端呼叫AspxCallbackPanel的 PerformCallback()方法.
接著看以下程式碼,在AspxCallbackPanel中放置一個MultiView.注意,MulitView中放置在AspxCallbackPanle的
<dxrp:PanelContent ID="PanelContent1" runat="server">
<dxcp:ASPxCallbackPanel ID="ASPxCallbackPanel" runat="server" ClientInstanceName="CallbackPanel"
OnCallback="ASPxCallbackPanel_Callback" Width="100%">
<PanelCollection>
<dxp:PanelContent ID="PanelContent2" runat="server">
<asp:MultiView ID="MultiView" runat="server">
<asp:View ID="View1" runat="server">
<table>
<tr>
<td valign="top">
<dxe:ASPxLabel ID="ASPxLabel1" runat="server" Text="♣我是誰?不要告訴我是上班族,現在的上班族太民工;不要告訴我是民工,現在民工太缺錢;不要告訴我是富翁,富翁大都是暴發戶;不要告訴我是暴發戶,暴發戶都想當明星;不要告訴我是明星,現在明星就像上班族。"
Font-Bold="True">
dxe:ASPxLabel>
td>
tr>
table>
asp:View>
<asp:View ID="View2" runat="server">
<table>
<tr>
<td valign="top">
<dxe:ASPxLabel ID="ASPxLabel3" runat="server" Text="♣許多人不知道自己失去過什麼,而時間總是耐心地給出答案。看著過去失去的東西,會有一種心痛的感覺!算是一種悔悟吧!"
Font-Bold="True">
dxe:ASPxLabel>
td>
tr>
table>
asp:View>
<asp:View ID="View3" runat="server">
<table>
<tr>
<td valign="top">
<dxe:ASPxLabel ID="ASPxLabel5" runat="server" Text="♣一個人吻你,你一定被人深愛;不少人吻你,你一定是個漂亮的小孩;非常多的人吻你,你會被口水淹死"
Font-Bold="True">
dxe:ASPxLabel>
td>
tr>
table>
asp:View>
asp:MultiView>
dxp:PanelContent>
PanelCollection>
dxcp:ASPxCallbackPanel>
dxrp:PanelContent>
接下來就是呼叫AspxCallbackPanel的PerformCallback()方法了,這裡我們放置了一個ASPxListBox,並註冊ASPxListbox的 ClientSideEvents事件中的 SelectedIndexChanged事件,如下:
<dxe:ASPxListBox ID="ASPxListBox1" runat="server" ClientInstanceName="ListBox" Height="83px">
<Items>
<dxe:ListEditItem Text="雷語1" Value="0" />
<dxe:ListEditItem Text="雷語2" Value="1" />
<dxe:ListEditItem Text="雷語3" Value="2" />
Items>
<ClientSideEvents SelectedIndexChanged="function(s, e) {
var item = ListBox.GetSelectedItem();
CallbackPanel.PerformCallback(item.value); <!--此行就是呼叫AspxCallbackPanel的回撥方法 -->
}" Init="function(s, e) {
ListBox.SetSelectedIndex(0);
CallbackPanel.PerformCallback(0);
}"
/>
dxe:ASPxListBox>
當從客戶呼叫CallbackPanel.PerformCallback(value)的方法時,它會呼叫在伺服器端的OnCallback事件.
{
MultiView.ActiveViewIndex = Convert.ToInt32(e.Parameter); //啟用顯示的ViewID
}
總結:
1 向頁面新增ASPxCallbackPanel元件,並設定ClientInstanceName屬性(客戶端標識,如 ClientInstanceName="CallbackPanel")。
2 註冊ASPxCallbackPanel元件的伺服器端事件ASPxCallback_Callback。
3 在客戶端使用者CallBack元件的客戶端方法PerformCallback方法,以呼叫伺服器端的ASPxCallbackPanel_Callback事件。
程式碼:CallbackPanel.PerformCallback(id)
結論:
通過ASPxCallbackpanel與上一節的AspxCallBack的使用,我們發現DevExpress Aspx控制元件的回撥方法都是一致的。
即新增ClientInstanceName
註冊伺服器端的Callback事件
呼叫ClientInstanceName.PerformCallback方法以執行伺服器端的Callback中的程式碼
最後呼叫CallbackComplete事件,進行必要的處理(可選)
個人觀點:
ASPxCallbackPanel和AspxCallBack雖然提供了很多的機制來完成AJAx的操作,但從控制元件易用性上來講,ASPxCallbackPanel並不如UpdataPanel如用。
但通過ASPxCallbackPanel和CallBack元件的回撥學習,使我們知道了ASPx系列操作的回撥機制與流程,對於學習和了解其他ASPx控制元件來說還是有很大的幫助的。
原文地址:http://www.cnblogs.com/wservices/archive/2009/08/02/1535928.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-611136/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C# DevExpress spreadsheetControl的基本使用方法 Excel外掛C#devExpressExcel
- 【DevExpress v17.2新功能預告】DevExpress ASP.NET Scheduler新的自適應功能devExpressASP.NET
- DevExpress XtraScheduler日程管理控制元件應用例項(1)-- 基本使用devExpress控制元件
- DevExpress ASP.NET示例資源最全分享!(一)devExpressASP.NET
- devexpress 元件使用研究devExpress元件
- DevExpress v17.2新版亮點—ASP.NET篇(二)devExpressASP.NET
- DevExpress v17.2新版亮點—ASP.NET篇(三)devExpressASP.NET
- DevExpress v17.2新版亮點—ASP.NET篇(一)devExpressASP.NET
- 圖文詳解!DevExpress XtraScheduler日程管理控制元件應用例項(1)-- 基本使用devExpress控制元件
- ASP.NET MVC 4使用Bundle的打包壓縮JS/CSSASP.NETMVCJSCSS
- DevExpress v18.1新版亮點——ASP.NET篇(四)devExpressASP.NET
- DevExpress v18.1新版亮點——ASP.NET篇(三)devExpressASP.NET
- DevExpress v18.1新版亮點——ASP.NET篇(二)devExpressASP.NET
- log4j的基本使用和引數設定
- ASP.Net Core 2.2 MVC入門到基本使用系列 (五)ASP.NETMVC
- ASP.NET MVC 4使用PagedList.Mvc分頁ASP.NETMVC
- 【重典】Asp.net MVC Preview 4 中使用RenderComponentASP.NETMVCView
- DevExpress v18.1新版亮點——ASP.NET Bootstrap篇(一)devExpressASP.NETboot
- DevExpress v18.1新版亮點——ASP.NET Bootstrap篇(二)devExpressASP.NETboot
- [乾貨來襲]DevExpress ASP.NET示例資源最全分享!(三)devExpressASP.NET
- [乾貨來襲]DevExpress ASP.NET示例資源最全分享!(二)devExpressASP.NET
- 【DevExpress v17.2新功能預告】增強ASP.NET TreeListdevExpressASP.NET
- 【DevExpress v17.2新功能預告】增強ASP.NET GridView的功能devExpressASP.NETView
- DevExpress GridControl使用(轉)devExpress
- 在ASP.NET MVC中使用Knockout實踐05,基本驗證ASP.NETMVC
- 【重大更新】DevExpress v18.1新版亮點——ASP.NET篇(一)devExpressASP.NET
- ASP.NET Core Swagger接入使用IdentityServer4 的 WebApiASP.NETSwaggerIDEServerWebAPI
- Devexpress 常用的功能devExpress
- DevExpress使用教程:新增非繫結列devExpress
- Asp.Net Webapi路由基本設定ASP.NETWebAPI路由
- DevExpress DevExpress 中 漢化包 漢化方法devExpress
- ASP.NET MVC 隨想錄(4):開始使用ASP.NET Identity,初級篇ASP.NETMVCIDE
- Vuex的基本使用Vue
- mongoose的基本使用Go
- mysqli的基本使用MySql
- mybatis的基本使用MyBatis
- RecyclerView 的基本使用View
- Bootstrap 的基本使用boot