zoukankan      html  css  js  c++  java
  • ArcGIS.Server.9.2.DotNet自带例子分析(一、二)

    目的:
    1.arcgis server9.2 ADF的无刷新机制
    准备:
    1.(一、一)的工程,具体见前篇。

    开始:
    1. 先把上篇里漏下的ScaleBar(比例尺)和Magnifier(放大镜)功能补上,从工具栏拖一个ScaleBarMagnifier控件到页面上ID分别为ScaleBar1和Magnifier1。
    2.设置ScaleBar1,首先给esri:ScaleBar加上Style=" left: 278px; position: absolute; top: 485px; "这样做的目的就是可以使得ScaleBar1浮在地图上面,把页面切换到设计视图,选择ScaleBar1把它位置拖动到地图的右下角的位置,设置Map属性为Map1,设置BarUnits(单位)属性为Kilometers(千米),
    BarUnits有Miles(英里)、Kilometers(千米)、Feet(英尺)、Meters(米)四种选择,找了一下汉化单位的方法好像没有找到了,只能这样了。
    3.设置Magnifier1,首先给esri:Magnifier加上style="position: absolute; left: 179px; top: 122px;"然后在设计视图中拖动到合适的位置,设置Map属性为Map1,MagnifierMapResource属性为MapResourceManager1,MagnifierMapResource属性为MapResourceItem0,MagnificationFactor属性设置默认放大倍数。
    4.这样就完成了ScaleBar(比例尺)和Magnifier(放大镜)功能,可以调试运行一下查看效果。
    5.开始功能代码,Default.aspx页面切换到代码视图,按照页生命周期顺序来说明代码。
    6.首先添加ESRI.ArcGIS.ADF.Web.UI.WebControls的引用,输入页面的Page_PreInit方法,代码如下:
    Code
    7.Page_Load事件,首先去掉了一些比较复杂的代码从简单到复杂的分析,代码和说明如下:
    Code

    8.接下来页面要实现 ICallbackEventHandler这个接口,关于 ICallbackEventHandler的资料网上很多了,通过实现 ICallbackEventHandler接口实现了NET中页面的无回调刷新。 实现 ICallbackEventHandler接口就必须实现string ICallbackEventHandler.GetCallbackResult()和void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)这2个方法具体代码和说明如下:

    Code
    9.用ICallbackEventHandler的方式实现页面关闭和页面版权显示2个功能,首先添加m_closeOutCallback和m_copyrightCallback两个全局的字符串变量,这两字符串是生成客户端的javascript用的。然后在Page_Load事件添加生产这两字符内容的代码,具体代码如下:
    Code
    10.把上面的m_closeOutCallback和m_copyrightCallback输出到页面,切换到Default.aspx的html代码页面在页面的结尾处输入如下代码:
    Code
    11.新建JavaScript目录,然后在目录中新建叫WebMapApp.js的js文件,同时在Default.aspx页面用添加对WebMapApp.js文件的引用:<script language="javascript" type="text/javascript" src="javascript/WebMapApp.js"></script> 。WebMapApp.js代码如下:
    Code
    12.上面的脚本文件中主要实现了CloseOut()和webMapAppGetCopyrightText()两客户端方法,他们是通过执行有服务器端GetCallbackEventReference生成客户端调用的javascript方法段实现无刷新的调用服务器端的方法。
    13.接下来在服务器端编写响应上面这2个客户端方法的代码,这2个客户端方法都是通过WebForm_DoCallback与服务器端进行交互,所以需要在服务器端的ICallbackEventHandler.GetCallbackResult()和ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)方法中进行处理,具体代码和说明如下:
    Code
    14.现在在页面上添加一个FloatingPanel控件id为CopyrightText_Panel,在<esri:FloatingPanel标签中添加 Style="left: 540px; position: absolute; top: 145px",Visible属性为False,在这个FloatingPanel控件添加一个div id为CopyrightTextContents.代码如下:
    Code
    15.新建ApplicationClosed.aspx页面,等关闭地图页面后显示的页面。
    16.最好在页面上添加2个btton来调用CloseOut()和webMapAppGetCopyrightText()方法,具体代码如下:
    Code
    17.最后调试运行看效果,剩下的部分下篇在写。


  • 相关阅读:
    《运营笔记》:主要是猫扑论坛运营经验。3星。
    《澄明之境》:二十年期货交易员的经验:投资没有圣杯,控制风险,在市场阶梯式上升过程中赚钱。3星
    《好好说话》:常见沟通场景的应对误区与应答思路、应答句式。4星。
    《尖叫感》:是近20-30年来尤其是近3-5年来的优秀广告文案的整理汇编。3星
    《石油,用得完吗》:石油会比较缓慢地被替代。3星
    Discuz常见大问题-如何自定义单个页面
    Discuz常见大问题-如何DIY一个独立页面
    Discuz常见大问题-如何使用云采集插件
    Discuz常见大问题-如何使用图片轮播器
    Discuz常见大问题-如何在自定义页面使用首页四格
  • 原文地址:https://www.cnblogs.com/hll2008/p/1264627.html
Copyright © 2011-2022 走看看