ArcGIS Server之Ajax应用---智能查询
本文严禁擅自转载或用于商业目的,如有需要请事先联系作者,同时也参阅了大量其他网络文档,如果您觉得侵犯您,请和我联系:chinazhousheng@gmail.com
基于ADF Ajax良好的扩展性,结合了Asp.Net Ajax 1.0(Atlas)进行Ajax开发,目前ADF组件并不支持UpdatePanel更新机制,但合理的利用Asp.Net Ajax将很大程序上提升程序员效率。最典型的在部分属性查询时采用的类似于Google Suggest的智能提示。

第一步:结合updatapanel以及ajaxtoolkit控件
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate> <asp:TextBox ID="txtQuery" runat="server"></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender runat="server" ID="AutoCompleteSearch"
MinimumPrefixLength="1" TargetControlID="txtQuery"
ServicePath="TestWebService.asmx"
ServiceMethod="GetSearchTerms"></ajaxToolkit:AutoCompleteExtender>
</ContentTemplate>
</asp:UpdatePanel>
第二步:下面列出TestWebService.asmx中的关键DEMO
string username = "username";
string password = "pwd";
string domain = "domainname";
string host = "localhost";

// Create the user identity.
ESRI.ArcGIS.ADF.Identity userIdentity = new ESRI.ArcGIS.ADF.Identity(username, password, domain);
// Create a connection object to an ArcGIS Server (host), with user credentials.
ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection agsConnnection = new ESRI.ArcGIS.ADF.Connection.AGS.AGSServerConnection(host, userIdentity);
// Connect to the ArcGIS Server.
agsConnnection.Connect();
// Get a ServerObjectManager.
ESRI.ArcGIS.Server.IServerObjectManager som = agsConnnection.ServerObjectManager;

ESRI.ArcGIS.Server.IServerContext serverContext = som.CreateServerContext("CSMap", "MapServer");

IServerObject so = serverContext.ServerObject;
IMapServer csmap = (IMapServer)so;


string mapname = csmap.DefaultMapName;

List<string> suggestions = new List<string>();

IQueryFilter pQueryFilter = (IQueryFilter)serverContext.CreateObject("esriGeodatabase.QueryFilter");
pQueryFilter.WhereClause = "NAME LIKE '"+prefixText+"%'";
IRecordSet result = csmap.QueryFeatureData(mapname, 6, pQueryFilter);//6为图层号

DataSet resultds = ESRI.ArcGIS.Server.WebControls.Converter.ToDataSet(serverContext, result);
DataTable resultdt = resultds.Tables[0];
int icount=0;
while (icount < resultdt.Rows.Count)
{
string outstring = resultdt.Rows[icount]["NAME"].ToString();
suggestions.Add(outstring);
icount++;
}

serverContext.ReleaseContext();
return suggestions.ToArray();
呵 ,代码就不解释了,也不排除里面有部分垃圾代码,望大家见谅!大家有什么意见和想法可以和我交流,非常欢迎!
文章来源:http://www.cnblogs.com/chinazhousheng/archive/2008/05/17/1193851.html
基于ADF Ajax良好的扩展性,结合了Asp.Net Ajax 1.0(Atlas)进行Ajax开发,目前ADF组件并不支持UpdatePanel更新机制,但合理的利用Asp.Net Ajax将很大程序上提升程序员效率。最典型的在部分属性查询时采用的类似于Google Suggest的智能提示。

第一步:结合updatapanel以及ajaxtoolkit控件



















































值得一提的是,智能查询中数据查询只适用于数据量相对较少的情况,这是由于Ajax的XMLHTTP组件传输数据时会受到数据量大小限制,一旦结果数据量过大将会导致传输过程中数据丢失,因此系统在Ajax应用方面尽量考虑效率与安全平衡,涉及到大面积的查询数据时仍然采用Form提交方式而并非Ajax方式。
文章来源:http://www.cnblogs.com/chinazhousheng/archive/2008/05/17/1193851.html
所有版权归小能所有哦!!!