商信互联
本主题描述如何使用JavaScript代码直接访问dxVectorMap小部件。如果您需要自定义未映射到“模型编辑器”中IModelVectorMapSettings节点的属性的窗口小部件选项,则可能需要执行此操作。在此示例中,自定义调色板应用于地图区域(在模型编辑器中,您只能应用VectorMapPalette枚举中列出的预定义调色板)。本主题中描述的方法不适用于移动应用程序。
在此,假定您具有根据Vector Map教程上的Display Areas创建的应用程序。
将VectorMapPaletteController视图控制器添加到ASP.NET模块项目中。在构造函数中,将ViewController.TargetObjectType属性设置为IAreaInfo,并将ViewController.TargetViewType设置为ViewType.ListView。重写OnViewControlsCreated方法,并访问WebVectorMapsListEditor列表编辑器及其VectorMapViewer控件。此控件公开VectorMapViewer.ClientSideEvents属性,该属性使您可以将JavaScript处理程序分配给客户端事件。处理VectorMapViewerClientSideEvents.Customize 客户端事件,以创建并应用自定义调色板。
using DevExpress.ExpressApp;
using DevExpress.Persistent.Base;
using DevExpress.ExpressApp.Maps.Web;
// ...
public class VectorMapPaletteController : ViewController {
public VectorMapPaletteController() {
TargetObjectType = typeof(IAreaInfo);
TargetViewType = ViewType.ListView;
}
protected override void OnViewControlsCreated() {
base.OnViewControlsCreated();
WebVectorMapsListEditor vectorMapsListEditor = ((ListView)View).Editor as WebVectorMapsListEditor;
vectorMapsListEditor.VectorMapViewer.ClientSideEvents.Customize =
@"function(sender, vectorMap) {
var myPalette = {
gradientSet: ['#78b6d9', '#eeba69']
};
DevExpress.viz.registerPalette('myCustomPalette', myPalette);
vectorMap.option('areaSettings.palette', 'myCustomPalette');
}";
}
}
Imports Microsoft.VisualBasic
Imports DevExpress.ExpressApp
Imports DevExpress.Persistent.Base
Imports DevExpress.ExpressApp.Maps.Web
' ...
Public Class VectorMapPaletteController
Inherits ViewController
Public Sub New()
TargetObjectType = GetType(IAreaInfo)
TargetViewType = ViewType.ListView
End Sub
Protected Overrides Sub OnViewControlsCreated()
MyBase.OnViewControlsCreated()
Dim vectorMapsListEditor As WebVectorMapsListEditor = TryCast(CType(View, ListView).Editor, WebVectorMapsListEditor)
vectorMapsListEditor.VectorMapViewer.ClientSideEvents.Customize = _
"function(sender, vectorMap) {" & ControlChars.CrLf & _
" var myPalette = {" & ControlChars.CrLf & _
" gradientSet: ['#78b6d9', '#eeba69']" & ControlChars.CrLf & _
" };" & ControlChars.CrLf & _
" DevExpress.viz.registerPalette('myCustomPalette', myPalette);" & ControlChars.CrLf & _
" vectorMap.option('areaSettings.palette', 'myCustomPalette');" & ControlChars.CrLf & _
"}"
End Sub
End Class