ArcGISServer adf通過Asp.Net自己Ajax實現無重新整理操作

來源:互聯網
上載者:User

    在項目開發時,總感覺用adf的toolbar或task功能比較麻煩,缺乏靈活性,所以懂得ArcGISServer內建的Js庫對於 ArcGISServer開發有很大的益處。如建立一個task後我們可以不顯示task頁面,但是我們卻可以“盜用”該task功能,使用 JavaScript來使用該功能。

貼代碼: 

Code
1function CX()
2{
3executeTask('searchText=' + document.getElementById('info').value,"WebForm_DoCallback('TaskManager1$SearchAttributesTask1',argument,processCallbackResult,context,postBackError,true)");
4}

    以上就是“盜用”SearchAttributesTask的功能,可是實現自己定義頁面形式。“searchText”後面加上需要查詢的資訊的就ok,這樣就實現了自訂形式查詢。

    除上面形式“盜用”外,我們還可以借用Asp.Net內建的Ajax來實現無重新整理操作。比如我們要實現某個地物的置中顯示,我們先將地圖頁面實現Asp.Net 自己Ajax的ICallbackEventHandler介面,並實現介面事件中 void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument),將地物置中的代碼寫這裡面,然後返回Map1.CallbackResults.ToString()這個字串。我們盜用的就是這個了,這個返回的是esri js庫processCallbackResult自己能處理的格式字串,解析這個字串即可實現地圖的無重新整理操作(該字串包括^^^  ::等格式含義可以參考說明說明)。通過Asp.Net ICallbackEventHandler返回該字串我們還不能實現重新整理,需要註冊對應的js調用塊。

      Code
1public string centeratCallBackFunctionInvocation;
2 protected void Page_Load(object sender, EventArgs e)
3    {
4      centeratCallBackFunctionInvocation = Page.ClientScript.GetCallbackEventReference(this,
5        "message", "processCallbackResult", "context", "postBackError", true);
6}

 

    還有在頁面js中調用並傳入參數:

Code
 1function Center2()
 2         {
 3            var wgid=document.getElementById("wgid").value;
 4            var message;
 5            if(wgid)
 6            {
 7                message="WGID="+wgid;
 8               <%=centeratCallBackFunctionInvocation%>
 9                
10            }
11         
12         }

  這樣我們就可以靈活地實現Ajax無重新整理等操作,而不老局限於FloatPanel等控制項上。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.