arcgis 9.2 queryfilter stand-alone class and usage
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using ESRI.ArcGIS.ADF.Web.DataSources;
namespace ArcGisFilter
{
public class QueryFilter
{
private int m_Resource_Index;
private ESRI.ArcGIS.ADF.Web.UI.WebControls.Map m_Map;
private string m_Field_List;
private string m_Where_Condition;
private string m_Layer_Name;
public int Resource_Index
{
get { return Resource_Index; }
set { m_Resource_Index = value; }
}
public ESRI.ArcGIS.ADF.Web.UI.WebControls.Map Map
{
get { return Map; }
set { m_Map = value; }
}
public string Field_List
{
get { return Field_List; }
set { m_Field_List = value; }
}
public string Where_Condition
{
get { return Where_Condition; }
set { m_Where_Condition = value; }
}
public string Layer_Name
{
get { return Layer_Name; }
set { m_Layer_Name = value; }
}
public System.Data.DataTable Run_Query()
{
IMapFunctionality mf = (IMapFunctionality)m_Map.GetFunctionality(m_Resource_Index);
IGISResource gisresource = mf.Resource;
IQueryFunctionality qfunc = (IQueryFunctionality)gisresource.CreateFunctionality(typeof(IQueryFunctionality), null);
ESRI.ArcGIS.ADF.StringCollection strcollection = new ESRI.ArcGIS.ADF.StringCollection(m_Field_List, ‘,’);
ESRI.ArcGIS.ADF.Web.QueryFilter qfilter = new ESRI.ArcGIS.ADF.Web.QueryFilter();
qfilter.SubFields = strcollection;
qfilter.WhereClause = m_Where_Condition;
string[] lids;
string[] lnames;
qfunc.GetQueryableLayers(null, out lids, out lnames);
int layer_index = 0;
for (int i = 0; i < lnames.Length; i++)
{
if (lnames[i] == m_Layer_Name)
{
layer_index = i;
break;
}
}
System.Data.DataTable datatable = qfunc.Query(null, lids[layer_index], qfilter);
return datatable;
}
}
}
ArcGisFilter.QueryFilter qf = new ArcGisFilter.QueryFilter();
qf.Field_List = “AD, IL_KODU”;
qf.Layer_Name = “SDE.tr_sehir”;
qf.Where_Condition = ” AD = ‘TRABZON’”;
qf.Map = Map1;
qf.Resource_Index = 0;
GridView2.DataSource = qf.Run_Query();
GridView2.DataBind();