本文严禁擅自转载或用于商业目的,如有需要请事先联系作者,同时也参阅了大量其他网络文档,如果您觉得侵犯您,请和我联系:chinazhousheng@gmail.com    
    基于
ADF Ajax良好的扩展性,结合了Asp.Net Ajax 1.0Atlas)进行Ajax开发,目前ADF组件并不支持UpdatePanel更新机制,但合理的利用Asp.Net Ajax将很大程序上提升程序员效率。最典型的在部分属性查询时采用的类似于Google Suggest的智能提示。
ArcGIS Server之Ajax应用---智能查询
第一步:结合updatapanel以及ajaxtoolkit控件
ArcGIS Server之Ajax应用---智能查询<asp:UpdatePanel ID="UpdatePanel1" runat="server">
ArcGIS Server之Ajax应用---智能查询              
<ContentTemplate>  <asp:TextBox ID="txtQuery" runat="server"></asp:TextBox>  
ArcGIS Server之Ajax应用---智能查询                
<ajaxToolkit:AutoCompleteExtender runat="server" ID="AutoCompleteSearch"
ArcGIS Server之Ajax应用---智能查询         MinimumPrefixLength
="1" TargetControlID="txtQuery"
ArcGIS Server之Ajax应用---智能查询         ServicePath
="TestWebService.asmx"
ArcGIS Server之Ajax应用---智能查询         ServiceMethod
="GetSearchTerms"></ajaxToolkit:AutoCompleteExtender>
ArcGIS Server之Ajax应用---智能查询                    
</ContentTemplate>
ArcGIS Server之Ajax应用---智能查询                    
ArcGIS Server之Ajax应用---智能查询        
ArcGIS Server之Ajax应用---智能查询        
</asp:UpdatePanel>
第二步:下面列出TestWebService.asmx中的关键DEMO
ArcGIS Server之Ajax应用---智能查询string username = "username";
ArcGIS Server之Ajax应用---智能查询            
string password = "pwd";
ArcGIS Server之Ajax应用---智能查询          
string domain = "domainname";
ArcGIS Server之Ajax应用---智能查询            
string host = "localhost";
ArcGIS Server之Ajax应用---智能查询
ArcGIS Server之Ajax应用---智能查询            
// Create the user identity.
ArcGIS Server之Ajax应用---智能查询
            ESRI.ArcGIS.ADF.Identity userIdentity = new ESRI.ArcGIS.ADF.Identity(username, password, domain);
ArcGIS Server之Ajax应用---智能查询            
// Create a connection object to an ArcGIS Server (host), with user credentials.
ArcGIS Server之Ajax应用---智能查询
            ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection agsConnnection = new ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection(host, userIdentity);
ArcGIS Server之Ajax应用---智能查询            
// Connect to the ArcGIS Server.
ArcGIS Server之Ajax应用---智能查询
            agsConnnection.Connect();
ArcGIS Server之Ajax应用---智能查询            
// Get a ServerObjectManager.
ArcGIS Server之Ajax应用---智能查询
            ESRI.ArcGIS.Server.IServerObjectManager som = agsConnnection.ServerObjectManager;
ArcGIS Server之Ajax应用---智能查询
ArcGIS Server之Ajax应用---智能查询           
ArcGIS Server之Ajax应用---智能查询            ESRI.ArcGIS.Server.IServerContext serverContext 
= som.CreateServerContext("CSMap""MapServer");
ArcGIS Server之Ajax应用---智能查询
ArcGIS Server之Ajax应用---智能查询            IServerObject so 
= serverContext.ServerObject;
ArcGIS Server之Ajax应用---智能查询            IMapServer csmap 
= (IMapServer)so;
ArcGIS Server之Ajax应用---智能查询
ArcGIS Server之Ajax应用---智能查询
ArcGIS Server之Ajax应用---智能查询            
string mapname = csmap.DefaultMapName;
ArcGIS Server之Ajax应用---智能查询
ArcGIS Server之Ajax应用---智能查询             List
<string> suggestions = new List<string>();
ArcGIS Server之Ajax应用---智能查询
ArcGIS Server之Ajax应用---智能查询            IQueryFilter pQueryFilter 
= (IQueryFilter)serverContext.CreateObject("esriGeodatabase.QueryFilter");
ArcGIS Server之Ajax应用---智能查询            pQueryFilter.WhereClause 
= "NAME LIKE  '"+prefixText+"%'";
ArcGIS Server之Ajax应用---智能查询            IRecordSet result 
= csmap.QueryFeatureData(mapname, 6, pQueryFilter);//6为图层号
ArcGIS Server之Ajax应用---智能查询

ArcGIS Server之Ajax应用---智能查询            DataSet resultds 
= ESRI.ArcGIS.Server.WebControls.Converter.ToDataSet(serverContext, result);
ArcGIS Server之Ajax应用---智能查询            DataTable resultdt 
= resultds.Tables[0];
ArcGIS Server之Ajax应用---智能查询           
int icount=0;
ArcGIS Server之Ajax应用---智能查询           
while (icount < resultdt.Rows.Count)
 suggestions.ToArray();
     呵 ,代码就不解释了,也不排除里面有部分垃圾代码,望大家见谅!大家有什么意见和想法可以和我交流,非常欢迎!

值得一提的是,智能查询中数据查询只适用于数据量相对较少的情况,这是由于AjaxXMLHTTP组件传输数据时会受到数据量大小限制,一旦结果数据量过大将会导致传输过程中数据丢失,因此系统在Ajax应用方面尽量考虑效率与安全平衡,涉及到大面积的查询数据时仍然采用Form提交方式而并非Ajax方式。



文章来源:http://www.cnblogs.com/chinazhousheng/archive/2008/05/17/1193851.html

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-01
  • 2021-08-01
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-29
  • 2021-12-29
  • 2022-12-23
相关资源
相似解决方案