c
下面这个例子就是通过一个ListBox,从客户端回调AspxCallbackPanel,从而更新AspxCallbackPanel内的MultiView控件显示信息。
首选,先在页面中放置一个AspxCallbackPanel控件,并设置ClientInstanceName属性为“CallbackPanel”。
代码如下:
接下来再放置一个MultiView控件,设置多个View,让他显示不同的内容,注意,MultiView是放置在ASPCallbackPane的<PanelCollection>中,如代码所示:
然后,在页面中添另一个ListBox,用来控制显示NulitView中的哪一个View,如下:
最后就是服务器端的处理程序,如下:
总结:
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如用。所有建议进行局部更新操作时,使用UpdataPanel进行更新。但通过ASPxCallbackPanel和CallBack组件的回调学习,使我们知道了ASPx系列操作的回调机制与流程,
对于学习和使用其他控件来说还是有很大的帮助的。