ArcGIS Server Web ADF 中的Ajax

1 ArcGIS Server Web ADF 中的Ajax调用过程。


 其中,客户端的WebForm_DoCallback,processCallbackResult是ADF封装好的JavaScript函数。 服务器端的类实现ICallbackEventHandler接口,实现RaiseCallbackEvent方法和GetCallbackResult方法。

 >> RaiseCallbackEvent

  用于处理客户端提交的请求。它接收一个string类型的参数,

  格式:

  protected void RaiseCallbackEvent(string eventArgument) 
  { 
  //do something 
  }
  

  >>GetCallbackResult负责把服务器的处理结果返回到客户端

  格式

  protected void GetCallbackResult() 
  { 
   return ### //返回服务端数据 
  }

 2 调用示例

     A 在页面中的JavaScript方法中异步调用。

        <%=m_ADFCallbackFunctionString%> //调用异步处理

     B 服务器类中 Page_Load方法。

        protected void Page_Load(object sender, EventArgs e)
        {
            m_ADFCallbackFunctionString = Page.ClientScript.GetCallbackEventReference(this, "message", "processCallbackResult", "context","postBackError", true);

        }

      GetCallbackEventReference方法参数介绍:

  向服务器端发送回调节器请求的函数。语法:

       public string GetCallbackEventReference( 
  Control control, 
  string argument 
  string clientCallback 
  string context 
  string clientErrorCallback 
  bool useAsync 
  )

  参数

  control

  处理客户端回调的服务器 Control。该控件必须实现 ICallbackEventHandler 接口并提供 RaiseCallbackEvent 方法。

  argument

   从客户端脚本传递给服务器端的一个参数

  clientCallback

  一个客户端事件处理程序的名称,该处理程序接收成功的服务器端事件的结果。 可以是自己定义的JavaScript函数,或者ADF封装的processCallbackResult函数。

  context

  启动回调之前在客户端计算的客户端脚本。脚本的结果传回客户端事件处理程序

  clientErrorCallback

  客户端事件处理程序的名称,该处理程序在服务器端事件处理程序出现错误时接收结果

  useAsync

  true 表示同步执行回调 false 表示异步执行回调

  返回值

  调用客户端回调的客户端函数的名称。

 

     C RaiseCallbackEvent根据客户端的传入的参数,进行特定的处理。

     public void RaiseCallbackEvent(string eventArgs)
        {
            System.Collections.Specialized.NameValueCollection nameValueCollection =
               ESRI.ArcGIS.ADF.Web.UI.WebControls.CallbackUtility.ParseStringIntoNameValueCollection(eventArgs);
            double x = Convert.ToDouble(nameValueCollection["X"]);
            double y = Convert.ToDouble(nameValueCollection["Y"]);
            ESRI.ArcGIS.ADF.Web.Geometry.Point adfCenterPoint = new ESRI.ArcGIS.ADF.Web.Geometry.Point(x, y);
            Map1.CenterAt(adfCenterPoint);
            Map1.Zoom(20);
            m_ADFCallbackFunctionString = Map1.CallbackResults.ToString();
        }

       D GetCallbackResult函数返回相应结果。
        public string GetCallbackResult()
        {
            return m_ADFCallbackFunctionString;
        }

       E    GetCallbackEventReference中的clientCallback参数,即客户端回调函数。 利用该回调函数解析服务器返回的结果。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值