目的:
1.arcgis server9.2 ADF自定义一个简单的Task控件

准备工作:
1.找到DeveloperKit\SamplesNET\Server\Web_Applications目录下的Common_SimpleTaskCSharp.zip。

开始:
0.自定义任务控件一般是从任务抽象类(Task或者FloatingPanelTask)继承而来。FloatingPanelTask与Task的相同之处在于它们都是从System.Web.UI.WebControls.CompositeControl继承而来,而System.Web.UI.WebControls.CompositeControl实现了ICallbackEventHandler接口,所以它们都具有Ajax能力。 FloatingPanelTask与Task的区别在于是否被包含在FloatingPanel中。任务抽象类Task,Task类除了实现ICallbackEventHandler外,还实现了二个接口:IBuddyControlSupport以及ITask。
1.新建名为SimpleTask的ASP.NET Web应用程序,然后在SimpleTask的解决方案下在建立一个叫SimpleTaskLib的类库工程,用在自定义Task控件。
2.在SimpleTask工程的引用中添加对工程SimpleTaskLib的引用,这样可以方便调试。
3.在SimpleTaskLib工程中新建myTask.cs文件,myTask类继承自:FloatingPanelTask控件,需要添加对ESRI.ArcGIS.ADF.Web.UI.WebControls的引用,因为是web控件当然还需要添加对System.Web的引用。具体如下:

 1ArcGIS.Server.9.2.DotNet自带例子分析(五、一)using System;
 2ArcGIS.Server.9.2.DotNet自带例子分析(五、一)using System.Collections.Generic;
 3ArcGIS.Server.9.2.DotNet自带例子分析(五、一)using System.Text;
 4ArcGIS.Server.9.2.DotNet自带例子分析(五、一)using ESRI.ArcGIS.ADF.Web.UI.WebControls;
 5ArcGIS.Server.9.2.DotNet自带例子分析(五、一)
 6ArcGIS.Server.9.2.DotNet自带例子分析(五、一)namespace SimpleTaskLib
 7

4.重写CreateChildControls方法以达到我们想要的显示内容,在Task控件上显示2个输入框和一个按钮,具体的代码和说明如下:

 1ArcGIS.Server.9.2.DotNet自带例子分析(五、一)protected override void CreateChildControls()
 2        }

5.重写GetCallbackResult()和ExecuteTask()方法,具体代码和说明如下:

 1ArcGIS.Server.9.2.DotNet自带例子分析(五、一)public override string GetCallbackResult()
 2

4.编译生成dll文件,这样一个自定义的Task控件就开发完成了。接下来就是在页面中使用这个控件。
5.把上面的那个dll添加到vs的左边的工具箱上,然后SimpleTask工程Default.aspx的页面上添加一个TaskResults1控件;TaskManager1控件,然后把工具箱上的那个SimpleTask控件拖到TaskManager1控件中ID为MyTask1,BuddyControl属性为TaskResults1。
6.在页面上继续添加一个Menu1控件,把TaskManager1控件BuddyControl的属性设为Menu1。这样就可以运行查看这个自定义Task的功能了。
ArcGIS.Server.9.2.DotNet自带例子分析(五、一)

相关文章: