当前位置: 首页 > news >正文

ArcGIS.Server.9.2.DotNet自带例子分析(七、一)

目的:
1.arcgis server9.2 ADF实现Query查询功能

准备工作:
1.用ArcGis Server Manager或者ArcCatalog发布一个叫usa的Map Service,并且把这个Service启动起来。
2.找到DeveloperKit\SamplesNET\Server\Web_Applications目录下的Common_QueryNewWindowCSharp.zip。

开始:
1.新建名为QueryNewWindow的ASP.NET Web应用程序,  然后在页面上添加MapResourceManager1、Button1。设置MapResourceManager1的属性Type:ArcGIS Server Local;Resource:(default)@usa;Data Source:mycomp。Button1添加Button1_Click时间,具体代码和说明如下:

 1 protected   void  Button1_Click( object  sender, EventArgs e)
 2 ExpandedBlockStart.gifContractedBlock.gif         {
 3            //获取MapResourceManager1的Resource集合
 4            IEnumerator egrc = MapResourceManager1.GetResources().GetEnumerator();
 5            //判定初始化MapResourceManager1
 6            if (!MapResourceManager1.Initialized)
 7ExpandedSubBlockStart.gifContractedSubBlock.gif            {
 8                MapResourceManager1.Initialize();
 9            }

10            while (egrc.MoveNext())
11ExpandedSubBlockStart.gifContractedSubBlock.gif            {
12                //随机数
13                Random random = new Random();
14                int randout = random.Next(01000);
15
16                //获取Resource
17                IGISResource gisresource = (IGISResource)egrc.Current;
18                //判定初始化Resource
19                if (!gisresource.Initialized)
20ExpandedSubBlockStart.gifContractedSubBlock.gif                {
21                    gisresource.Initialize();
22                }

23                //判定是否支持QueryFunctionality
24                bool supportquery = gisresource.SupportsFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality));
25                if (supportquery)
26ExpandedSubBlockStart.gifContractedSubBlock.gif                {
27                    //创建QueryFunctionalit
28                    ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality qfunc;
29                    qfunc = (ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality)gisresource.CreateFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality), null);
30
31                    //查询图层id和名称
32                    string[] lids;
33                    string[] lnames;
34                    qfunc.GetQueryableLayers(nullout lids, out lnames);
35                    //要查询目标图层名称
36                    string sourcelayername = "states";
37                    //获取查询目标图层的index
38                    int layer_index = 0;
39                    for (int i = 0; i < lnames.Length; i++)
40ExpandedSubBlockStart.gifContractedSubBlock.gif                    {
41                        if (lnames[i] == sourcelayername)
42ExpandedSubBlockStart.gifContractedSubBlock.gif                        {
43                            layer_index = i;
44                            break;
45                        }

46                    }

47                    //查询过滤
48                    ESRI.ArcGIS.ADF.Web.QueryFilter queryfilter = new ESRI.ArcGIS.ADF.Web.QueryFilter();
49                    //要查询字段名称
50                    string fieldlist = "STATE_NAME";
51                    //查询的字段集
52                    ESRI.ArcGIS.ADF.StringCollection strcollection = new ESRI.ArcGIS.ADF.StringCollection(fieldlist, ',');
53                    queryfilter.SubFields = strcollection;
54                    //查询语句
55                    queryfilter.WhereClause = "STATE_NAME LIKE 'A%'";
56                    //查询结果存入DataTable
57                    System.Data.DataTable qdatatable = qfunc.Query(null, lids[layer_index], queryfilter);
58                    qdatatable.Columns[0].ColumnName = "STATE_NAME_ALIAS";
59                    //查询结果DataTable存入Session中
60                    Session["dt" + randout] = qdatatable;
61                }

62
63                string argval = "?id=" + randout;
64                //弹出新页面显示查询结果
65                Response.Write("<script>window.open('TableDialog.aspx" + argval + "', '" + randout.ToString() + "', 'dependent=yes ,width=400, height=200, status=no, toolbar=no, menubar=no, location=no, resizable=yes, scrollbars=yes'); </script>");
66            }

67        }
2.新建TableDialog.aspx页面用来作为弹出页面显示查询结果,在html里面添加一个<div id="datadiv" runat="server"></div>用来显示查询内容。
3.接下来编写 TableDialog.aspx的Page_Load事件,进行查询内容的显示,具体代码和说明如下:

 1 protected   void  Page_Load( object  sender, EventArgs e)
 2 ExpandedBlockStart.gifContractedBlock.gif         {
 3            string id = Request.QueryString["id"];
 4            DataTable dt = (DataTable)Session["dt" + id];
 5            if (dt != null)
 6ExpandedSubBlockStart.gifContractedSubBlock.gif            {
 7                System.Web.UI.HtmlControls.HtmlForm htmlform = (System.Web.UI.HtmlControls.HtmlForm)Page.FindControl("form1");
 8                Control controldiv = htmlform.FindControl("datadiv");
 9
10                GridView gd = new GridView();
11                gd.DataSource = dt;
12                gd.DataBind();
13                gd.Visible = true;
14                gd.BorderWidth = 10;
15                controldiv.Controls.Add(gd);
16            }

17        }
4.这样就可以运行查看效果了,这个例子比较简单了。

转载于:https://www.cnblogs.com/hll2008/archive/2008/08/25/1275677.html

相关文章:

  • 简述GPS导航设备的定位原理
  • ASP.Net2.0 GridView 多列排序,显示排序图标,分页(转)
  • C#正则表达式类Match和Group类的理解
  • 声音音质评价专业述语
  • 使用Document_Handler_Example修改的注意事项
  • iptables 范例
  • 将asp.net站点转化为sharepoint站点
  • Silverlight是什么
  • Sqlite DateTime 类型 读取和写入格式 注意的问题
  • 文档知多少---走出软件作坊:三五个人十来条枪 如何成为开发正规军(二十五)...
  • 我在博客园里的第一篇文章
  • C#模拟网站用户登录
  • 平时关注.net今个儿用java做了个计算器.
  • FLEX:改变FLEX的默认LOADING效果-分别使用swf,PNG,gif
  • 婚礼
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [case10]使用RSQL实现端到端的动态查询
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Angular 响应式表单之下拉框
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • js算法-归并排序(merge_sort)
  • MySQL-事务管理(基础)
  • MySQL用户中的%到底包不包括localhost?
  • Netty 4.1 源代码学习:线程模型
  • npx命令介绍
  • PaddlePaddle-GitHub的正确打开姿势
  • PV统计优化设计
  • Python_网络编程
  • Ruby 2.x 源代码分析:扩展 概述
  • text-decoration与color属性
  • tweak 支持第三方库
  • 对JS继承的一点思考
  • 分布式任务队列Celery
  • 给Prometheus造假数据的方法
  • 工作手记之html2canvas使用概述
  • 基于webpack 的 vue 多页架构
  • 每天一个设计模式之命令模式
  • 新版博客前端前瞻
  • 一道闭包题引发的思考
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • (1)Nginx简介和安装教程
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (LeetCode) T14. Longest Common Prefix
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (正则)提取页面里的img标签
  • (转载)虚函数剖析
  • ***检测工具之RKHunter AIDE
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .gitignore文件---让git自动忽略指定文件
  • .naturalWidth 和naturalHeight属性,
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .Net环境下的缓存技术介绍