Доброго дня всем.
Использую следующий код для поиска объекта по значению поля:
private void addToResult(string value ,string field)
{
try
{
IGISResource resource;
IQueryFunctionality query;
List<DataSet> gdsList = new List<DataSet>();
TaskResults1.Nodes.Clear();
foreach (IMapFunctionality mapFunc in Map1.GetFunctionalities())
{
if (mapFunc is ESRI.ArcGIS.ADF.Web.DataSources.Graphics.MapFunctionality)
{
continue;
}
resource = mapFunc.Resource;
query =
resource.CreateFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality),
"qry_") as IQueryFunctionality;
string[] layerIds;
string[] layerNames;
query.GetQueryableLayers(null, out layerIds, out layerNames);
//string resourceType = resource.DataSource.GetType().ToString();
QueryFilter QF = new QueryFilter();
QF.ReturnADFGeometries = true;
QF.SubFields.Add("DB_ID");
QF.SubFields.Add("OBJECTID");
QF.WhereClause = field + "=" + value;
DataTable[] ds = new DataTable[layerIds.Length];
int i = 0;
try
{
foreach(string layerId in layerIds)
{
DataTable QyDT = query.Query(mapFunc.Name, layerId, QF);
if (QyDT != null)
{
ds = QyDT;
i++;
}
}
}
catch (Exception e)
{
DataTable table = new DataTable();
table.TableName = "Identify Error: " + e.Message;
ds = new DataTable[] { table };
}
..............
так вот, при первом запросе он все находит и добавляет запись в дерево TaskResults'а
потом я возвращаюсь на станицу запроса, меняю искомое значение и при
повторном поиске(и все последующих) ничего не добавляется TaskResults
конторл, так как QyDT не содержат ни одной записи по всем слоям
кто нибудь может пролить свет на эту пр