您的位置:首页 > 其它

arcgis server for .NET学习转载2

2009-08-25 14:29 381 查看
http://www.cnblogs.com/hll2008/archive/2008/08/12/1264627.html

目的:
1.arcgis server9.2 ADF的无刷新机制。
准备:
1.(一、一)的工程,具体见前篇。
开始:
1. 先把上篇里漏下的ScaleBar(比例尺)和Magnifier(放大镜)功能补上,从工具栏拖一个ScaleBar和Magnifier控件到页面上ID分别为ScaleBar1和Magnifier1。
2.设置ScaleBar1,首先给esri:ScaleBar加上Style=" left: 278px; position: absolute; top: 485px; "这样做的目的就是可以使得ScaleBar1浮在地图上面,把页面切换到设计视图,选择ScaleBar1把它位置拖动到地图的右下角的位置,设置Map属性为Map1,设置BarUnits(单位)属性为Kilometers(千米), BarUnits有Miles(英里)、Kilometers(千米)、Feet(英尺)、Meters(米)四种选择,找了一下汉化单位的方法好像没有找到了,只能这样了。
3.设置Magnifier1,首先给esri:Magnifier加上style="position: absolute; left: 179px; top: 122px;"然后在设计视图中拖动到合适的位置,设置Map属性为Map1,MagnifierMapResource属性为MapResourceManager1,MagnifierMapResource属性为MapResourceItem0,MagnificationFactor属性设置默认放大倍数。
4.这样就完成了ScaleBar(比例尺)和Magnifier(放大镜)功能,可以调试运行一下查看效果。
5.开始功能代码,Default.aspx页面切换到代码视图,按照页生命周期顺序来说明代码。
6.首先添加ESRI.ArcGIS.ADF.Web.UI.WebControls的引用,输入页面的Page_PreInit方法,代码如下:

protected void Page_PreInit(object sender, EventArgs e)
2//载入标识
2 public string m_newLoad = "false";
3
4 protected void Page_Load(object sender, EventArgs e)
5
//OverviewMap的展开事件
void OverviewMap_Panel_PanelExpanded(object sender, EventArgs args)

//OverviewMap的关闭事件
void OverviewMap_Panel_PanelCollapsed(object sender, EventArgs args)

//发生错误是跳到ErrorPage.aspx页面
private void callErrorPage(string errorMessage, Exception exception)
public partial class _Default : System.Web.UI.Page, ICallbackEventHandler
2
4//关闭javascript段
2public string m_closeOutCallback = "";
3//版权javascript段
4public string m_copyrightCallback = "";
5
6protected void Page_Load(object sender, EventArgs e)
7</form>
3
4</body>
</html>11.新建JavaScript目录,然后在目录中新建叫WebMapApp.js的js文件,同时在Default.aspx页面用添加对WebMapApp.js文件的引用:<script language="javascript" type="text/javascript" src="javascript/WebMapApp.js"></script> 。WebMapApp.js代码如下:

//初始化方法
2function startUp()
3
7//关闭页面方法
8
//在CloseOut()方法后接收服务器端事件返回的结果对页面进行响应

12.上面的脚本文件中主要实现了CloseOut()和webMapAppGetCopyrightText()两客户端方法,他们是通过执行有服务器端GetCallbackEventReference生成客户端调用的javascript方法段实现无刷新的调用服务器端的方法。
13.接下来在服务器端编写响应上面这2个客户端方法的代码,这2个客户端方法都是通过WebForm_DoCallback与服务器端进行交互,所以需要在服务器端的ICallbackEventHandler.GetCallbackResult()和ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)方法中进行处理,具体代码和说明如下:

private string GetCopyrightText()
<esri:FloatingPanel ID="CopyrightText_Panel" runat="server" BackColor="White" BorderColor="Gray"
BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="8pt" ForeColor="Black"
Height="200px" Style="left: 491px; position: absolute; top: 387px"
Title="Copyright" TitleBarColor="WhiteSmoke" TitleBarHeight="20px"
TitleBarSeparatorLine="False" Transparency="35" Width="250px" Visible="False" Docked="False">
<div id="CopyrightTextContents" style="width: 100%" >Copyright Information</div>
</esri:FloatingPanel>15.新建ApplicationClosed.aspx页面,等关闭地图页面后显示的页面。
16.最好在页面上添加2个btton来调用CloseOut()和webMapAppGetCopyrightText()方法,具体代码如下:

<input id="Button1" type="button" value="关闭地图" onclick="CloseOut()" />
<input id="Button2" type="button" value="显示版权"onclick="webMapAppGetCopyrightText()"/>17.最后调试运行看效果,剩下的部分下篇在写。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: