ArcGIS Web 编辑中 只读字段和隐藏字段设置

1 需求来源

在与客户交流过程中,遇到这样一个问题:在Web端(如Silverlight程序中)进行要素属性编辑时,如何设置字段的只读,或者隐藏某些字段呢?

当时听到这个问题,第一反应是通过编辑模板来进行控制,但是并没有找到合适的地方。今天问了问其他同事,得知可以通过图层属性进行设置,于是进行了测试,真就成功了,这里要谢谢北京的张文老师。

2 数据设置

要进行web编辑,数据当然得来自ArcSDE,这里选择两个图层,其中一个待编辑的图层GEO_SUR_WS,另一个GEO_REGION则主要是作为底图。图层如下:

地图如下:

首先对待编辑图层进行属性设置,隐藏BM_L_WATER字段(取消复选框):

然后设置BM为只读字段:

字段已经设置好,为了方便Web端编辑,设置编辑模板:



在上述编辑模板中,可以看到,ArcGIS自动维护的字段(OBJECTID_1、SHAPE、SHAPE.LEN、SHAPE.AREA)均没有显示,我们设置了隐藏的字段BM_L_WATER,也没有显示,而BM字段虽然显示,却是灰色的,表明其不可编辑。

保存地图文档,将文档发布为地图服务,记住勾选Feature Access选项,以便在Web端使用编辑功能。

通过服务目录浏览刚刚发布的服务,可以看见有地图服务和要素服务:

3程序测试

接下来通过程序进行测试,本例采用Silverlight API,XAML代码如下:
<Grid x:Name="LayoutRoot" Background="White">
        <esri:Map x:Name="map">
            <esri:ArcGISDynamicMapServiceLayer x:Name="hydroMap" Url="http://esri-huangd/arcgis/rest/services/webedit/MapServer"
                                               Token="n_RcVQLbzVGS5ThYnEdpJ8DXzDxyQ3CzLqERelrqlZWfqIdLISVBenN1quJTEDCySBY2mdDZJEqZ19YHGc3MlV2wDj_afN-YQkKlB1EzBMI."/>
            <esri:FeatureLayer ID="sur_ws" DisableClientCaching="True" AutoSave="False" OutFields="*" Mode="OnDemand"
                               Token="n_RcVQLbzVGS5ThYnEdpJ8DXzDxyQ3CzLqERelrqlZWfqIdLISVBenN1quJTEDCySBY2mdDZJEqZ19YHGc3MlV2wDj_afN-YQkKlB1EzBMI."
                               Url="http://esri-huangd/arcgis/rest/services/webedit/FeatureServer/0"/>
        </esri:Map>
        <esri:EditorWidget x:Name="MyEditorWidget" Map="{Binding ElementName=map}" Width="300" AutoSelect="False" AlwaysDisplayDefaultTemplates="True" 
            GeometryServiceUrl="http://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer" ShowAttributesOnAdd="True" Loaded="EditorWidget_Loaded"/>
    </Grid>
后台代码如下:
private void EditorWidget_Loaded(object sender, RoutedEventArgs e)
        {
            string[] myLayerIDs = { "sur_ws" };
            MyEditorWidget.LayerIDs = myLayerIDs;
        }
编译运行,编辑器如下:

用编辑模板在图上绘制一个图形,自动弹出属性编辑对话框如下:

编辑完成后,再单独选择一个要素,点击属性编辑按钮,弹出属性编辑对话框,如下:

细心的读者可能已经发现,编辑要素时自动弹出的属性对话框与单独编辑属性弹出的对话框中,包含的属性不完全一样:前者少了个BM字段,即不包含只读字段。

总结:通过测试我们发现,可以在图层的属性对话框中设置字段的只读和隐藏。如果设置了字段隐藏,则字段在编辑模板中不会出现,而且在Web端属性编辑对话框中也不会出现。如果设置了字段只读,则在编辑模板中该字段还会出现,但是显示为灰色;而在Web端,当编辑要素时自动弹出属性对话框时,不会显示只读的属性,如果是单独选择要素并编辑属性,则会显示只读属性,但显示为灰色,不能编辑。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值