在用户控件中使用 MapControl 的正确方法 mapxtreme载入地图
2012-09-03 21:01
411 查看
private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(!Page.IsPostBack) { //载入MapControl string strRootPath=Server.MapPath("./ZH") + "\ZH.mws"; MapControl_PL.Map.Clear(); MapInfo.Mapping.MapWorkSpaceLoader wl = new MapInfo.Mapping.MapWorkSpaceLoader(strRootPath); wl.Load(MapControl_PL.Map); Load_ALL(); } }
MapControl 在运行时的生命周期如下所示:
1. 在构造函数中,在创建所有默认工具的同时创建工具集合
2. 在 OnInit 中执行下列任务:
a. 尝试使用 Map 对象指向的 MapAlias 从 Session 中获取 Map 对象。如果该对象
不存在,则创建一个空地图。使用 Map 对象还可创建用于导出的 MapExport
对象。
b. 如果是第一次访问此页面并且 UseDesigntimeWorkspace 标记为 True,则将工作
空间加载到地图中。
3. 在 OnLoad 中,显示客户端上需要的所有信息,例如 javascript 和工具信息。
4. 在 RenderContents 中,渲染保存 MapControl 的标记和表示图像的 IMG 标记。工具
使用的其它信息用于客户端操作。LayerControl 以 javascript 变量的形式渲染。
在 Web 窗体的 Page_Load 方法运行时,可以从默认方法偏离并使用自己的 Map 对象。但
是,创建地图的别名必须与 MapControl 的 MapAlias 匹配。在将另一个工作空间加载到地
图时,请注意该地图的别名更改为工作空间中的别名
private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 this.ListBox_Result.Attributes.Add("ondblclick"," ShowItem(0);"); this.ListBoxComLineCopy.Attributes.Add("ondblclick"," ShowItem(1);"); this.ListBoxPeoLineCopy.Attributes.Add("ondblclick"," ShowItem(3);"); this.ListBox_PreResult.Attributes.Add("ondblclick","ShowItem(2)"); if(!Page.IsPostBack) { //载入MapControl string strRootPath=Server.MapPath("./ZH") + "\ZH.mws"; MapControl_PL.Map.Clear(); MapInfo.Engine.Session.Current.MapFactory.Remove(MapControl_PL.MapAlias); MapInfo.Engine.Session.Current.MapFactory.CreateEmptyMap(MapControl_PL.MapAlias, MapControl_PL.MapAlias,new Size(200,200)); MapInfo.Mapping.MapWorkSpaceLoader wl = new MapInfo.Mapping.MapWorkSpaceLoader(strRootPath); MapInfo.Mapping.Map map=MapInfo.Engine.Session.Current.MapFactory[MapControl_PL.MapAlias]; if(map!=null) { wl.Load(MapControl_PL.Map); wl.Load(map); MapControl_PL.Map=map; Load_ALL(); } } }
官方的代码 VB的:
private void Page_Load(object sender, System.EventArgs e) { if (!Page.IsPostBack) { // Remove the map from session; we want to use ours MapInfo.Engine.Session.Current.MapFactory.Remove (MapControl1.MapAlias); // Create a empty map with same alias as MapControl MapInfo.Engine.Session.Current.MapFactory.CreateEmptyMap (MapControl1.MapAlias, MapControl1.MapAlias, new Size(200,200)); // Load the map with table. MapInfo.Mapping.MapLoader ml = MapInfo.Mapping.MapLoader.CreateFromFile(@"World.tab"); // Get the map object out of session we just created MapInfo.Mapping.Map map = MapInfo.Engine.Session.Current.MapFactory [MapControl1.MapAlias]; if (map != null) { ml.Load(map); MapControl1.Map = map; } } }
相关文章推荐
- 在用户控件中使用 MapControl 的正确方法 mapxtreme载入地图
- 在用户控件中使用 MapControl 的正确方法 mapxtreme载入地图
- (转)向页面动态载入用户控件和自定义控件的方法(谨记)
- 用户控件使用方法(共用菜单实例)
- MapXtreme2005 不用mapcontrol 控件实现地图的显示
- Visual studio.net 2003中使用自定义(用户)控件(服务器控件)的方法(原创)
- asp.net动态载入用户控件的方法
- 使用C#反射实现用户控件调用父页面方法
- 使用RenderControl方法实现动态加载用户控件
- 如何使用Javascript调用.NET 2.0用户控件中的方法和属性
- 在主函数中提示用户输入用户名和密码。另写一方法来判断用户输入是否正确。该方法分别返回一个bool类型的登录结果和和一个string类型的登录信息。如登录成功,返回true及“登录成功”,若登录失败则返回false及“用户名错误”或“密码错误”(使用out参数)
- 在网页中使用.ascx用户控件的两种方法 .
- asp.net 用户控件中 使用相对路径的解决方法-------- 图片路径问题(用户控件、图片路径) ,ResolveUrl
- 向页面动态载入用户控件和自定义控件的方法不同
- Android用户输入自动提示控件AutoCompleteTextView使用方法
- 使用用户控件属性和方法
- 单击以激活并使用此控件正确解决方法
- 基于地图开发控件GMap.Net 使用 (五) 原创 用户自定义标签图片
- MapXtreme2004代码 MapControl控件中显示地图文件
- 使用C#反射实现用户控件调用父页面方法