zoukankan      html  css  js  c++  java
  • arcgis server回调

    老是搞忘怎么写,简单的做一下备忘

          public string m_Callback = "";
        public string sCallBackFunctionInvocation = "";

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Session["SourceLayer"] = "";
            }
            DropDownList1.Attributes.Add("onchange", "ChangeDDLContext()");
            m_Callback = Page.ClientScript.GetCallbackEventReference(Page, "argument", "processCallbackResult", "context", "processCallbackError", true);
            sCallBackFunctionInvocation = Page.ClientScript.GetCallbackEventReference(this, "message", "HandleResponse", "context", "postBackError", true);
           
        }

        protected void Page_PreRender(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ESRI.ArcGIS.ADF.Web.DataSources.IMapFunctionality mf = (ESRI.ArcGIS.ADF.Web.DataSources.IMapFunctionality)Map1.GetFunctionality(1);
                ESRI.ArcGIS.ADF.Web.DataSources.IGISResource gisresource = mf.Resource;
                bool supported = gisresource.SupportsFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality));
                if (supported)
                {
                    ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality qfunc=(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality)gisresource.CreateFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality), null);
                    string[] libs;
                    string[] lnames;
                    qfunc.GetQueryableLayers(null, out libs, out lnames);
                    for (int i = 0; i < lnames.Length; i++)
                    {
                        DropDownList1.Items.Add(lnames[i]);
                    }
                    Session["SourceLayer"] = DropDownList1.Items[0].Value;
                }
            }
        }

        #region ICallbackEventHandler成员
        private string _callbackArg;
        string ICallbackEventHandler.GetCallbackResult()
        {
            return RaiseCallbackeEvent(_callbackArg);
        }
        void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
        {
            _callbackArg = eventArgument;
        }
        #endregion
        private string RaiseCallbackeEvent(String _callbackArg)
        {
            string v = "";
            if (_callbackArg.Contains("ddl"))
            {
                ChangeDropDownListServer(_callbackArg);
            }
            else if (_callbackArg.Contains("Map"))
            {

                //try
                //{
                    //请求字符串
                    NameValueCollection keyValColl = CallbackUtility.ParseStringIntoNameValueCollection(_callbackArg);
                    if (keyValColl["Type"].ToString() == "findPath")
                    {
                        System.Text.StringBuilder sb = new System.Text.StringBuilder();
                        //起点名称
                        string Input1 = keyValColl["p1"];
                        //终点名称
                        string Input2 = keyValColl["p2"];
                        //路径分析
                        //无障碍点分析类调用
                        //findpath findpath = new findpath();
                        //findpath.doFindPath(Input1, Input2, Map1);
                        ////有障碍点分析类调用
                        //findBarrierPath findpath = new findBarrierPath();
                        //findpath.doFindPath(Input1, Input2, Map1);
                        //有多个障碍点分析类调用
                        findBarrierPath2 findpath = new findBarrierPath2();
                        findpath.doFindPath(Input1, Input2, Map1);
                        //直接调用
                      //  doFindPath(Input1, Input2);
                    }
            }
                // innercontent相当于innerhtml
             //   CallbackResult cr = new CallbackResult("div", "griddiv", "innercontent", returnstring);

                //CallbackResult crl = new CallbackResult("Gradview1", null, "innercontent", null);
                //Map1.CallbackResults.Add(crl);
                v = Map1.CallbackResults.ToString();
              
                return v;

      <script type="text/javascript" language="javascript">
             
             var context;
            
             function ChangeDDLContext()
             {
                context = 'DDLContext';
                ChangeClient();
             }
         function ChangeClient()
         {
            var message;
               
            if (context == 'DDLContext'){
                 var ddl1value = document.getElementById('DropDownList1').value;
             
               
                 message = 'ddl';
                 message += ',' + ddl1value;
            }
               
           if (context == 'BufferTextBox'){
               var bufboxvalue = document.getElementById('TextBox1').value;
                   
               message = 'bufbox';
               message += ',' + bufboxvalue;
               
          }
               
           <%=sCallBackFunctionInvocation%>
         }
         function search()
         {
            //起点的名称
            var v1=document.getElementById("txtBegin").value;
            //终点的名称
            var v2=document.getElementById("txtEnd").value;
            var argument = "ControlID=Map1&ControlType=Map&Type=findPath&p1="+v1+"&p2="+v2;
            var context = "Map";
            var rv=<%= m_Callback %>;
          
            eval(rv);

        }
        function searchClosestFacility()
        {
            //设施的名称
            var v1=document.getElementById("txtFacility1").value;
            var v2=document.getElementById("txtFacility2").value;
            //事件的名称
            var v3=document.getElementById("txtIncident").value;
            var argument="ControlID=Map1&ControlType=Map&Type=ClosestFacility&p1='"+v1+"'&p2='"+v2+"'&p3="+v3;
            var context="Map";
            var rv=<%=m_Callback %>;
            eval(rv);
        }
        function processCallbackError()
        {
          alert(66);
        }
        function HandleResponse()
        {
        }
      
        </script>

      <script type="text/javascript" language="javascript">
             
             var context;
            
             function ChangeDDLContext()
             {
                context = 'DDLContext';
                ChangeClient();
             }
         function ChangeClient()
         {
            var message;
               
            if (context == 'DDLContext'){
                 var ddl1value = document.getElementById('DropDownList1').value;
             
               
                 message = 'ddl';
                 message += ',' + ddl1value;
            }
               
           if (context == 'BufferTextBox'){
               var bufboxvalue = document.getElementById('TextBox1').value;
                   
               message = 'bufbox';
               message += ',' + bufboxvalue;
               
          }
               
           <%=sCallBackFunctionInvocation%>
         }
         function search()
         {
            //起点的名称
            var v1=document.getElementById("txtBegin").value;
            //终点的名称
            var v2=document.getElementById("txtEnd").value;
            var argument = "ControlID=Map1&ControlType=Map&Type=findPath&p1="+v1+"&p2="+v2;
            var context = "Map";
            var rv=<%= m_Callback %>;
          
            eval(rv);

        }
        function searchClosestFacility()
        {
            //设施的名称
            var v1=document.getElementById("txtFacility1").value;
            var v2=document.getElementById("txtFacility2").value;
            //事件的名称
            var v3=document.getElementById("txtIncident").value;
            var argument="ControlID=Map1&ControlType=Map&Type=ClosestFacility&p1='"+v1+"'&p2='"+v2+"'&p3="+v3;
            var context="Map";
            var rv=<%=m_Callback %>;
            eval(rv);
        }
        function processCallbackError()
        {
          alert(66);
        }
        function HandleResponse()
        {
        }
      
        </script>


         

  • 相关阅读:
    按需取余
    P3372 【模板】线段树 1
    POJ 3180 The Cow Prom ( korasaju 算法模板)
    【题解】Qin Shi Huang's National Road System HDU 4081 ⭐⭐⭐⭐ 【次小生成树】
    iOS 端容器之 WKWebView 那些事
    无影,会是接近未来的工作场景吗?
    Serverless Devs 2.0 全新发布,让 Serverless 应用开发更简单
    李飞飞:新技术变革时代的数据库产业
    如何攻破容器持久化存储挑战?
    Dubbo 和 HSF 在阿里巴巴的实践:携手走向下一代云原生微服务
  • 原文地址:https://www.cnblogs.com/gisdream/p/1450726.html
Copyright © 2011-2022 走看看