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代码如下:
编译运行,编辑器如下:
用编辑模板在图上绘制一个图形,自动弹出属性编辑对话框如下:
编辑完成后,再单独选择一个要素,点击属性编辑按钮,弹出属性编辑对话框,如下:
细心的读者可能已经发现,编辑要素时自动弹出的属性对话框与单独编辑属性弹出的对话框中,包含的属性不完全一样:前者少了个BM字段,即不包含只读字段。 总结:通过测试我们发现,可以在图层的属性对话框中设置字段的只读和隐藏。如果设置了字段隐藏,则字段在编辑模板中不会出现,而且在Web端属性编辑对话框中也不会出现。如果设置了字段只读,则在编辑模板中该字段还会出现,但是显示为灰色;而在Web端,当编辑要素时自动弹出属性对话框时,不会显示只读的属性,如果是单独选择要素并编辑属性,则会显示只读属性,但显示为灰色,不能编辑。
文章来源:http://blog.csdn.net/esrichinacd/article/details/8025283
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 ... ot%3B
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 ... gt%3B
</esri:Map>
<esri:EditorWidget x:Name="MyEditorWidget" Map="{Binding ElementName=map}" Width="300" AutoSelect="False" AlwaysDisplayDefaultTemplates="True"
GeometryServiceUrl="http://tasks.arcgisonline.com/ ... ot%3B ShowAttributesOnAdd="True" Loaded="EditorWidget_Loaded"/>
</Grid>
后台代码如下:private void EditorWidget_Loaded(object sender, RoutedEventArgs e)
{
string[] myLayerIDs = { "sur_ws" };
MyEditorWidget.LayerIDs = myLayerIDs;
}
编译运行,编辑器如下:
用编辑模板在图上绘制一个图形,自动弹出属性编辑对话框如下:
编辑完成后,再单独选择一个要素,点击属性编辑按钮,弹出属性编辑对话框,如下:
细心的读者可能已经发现,编辑要素时自动弹出的属性对话框与单独编辑属性弹出的对话框中,包含的属性不完全一样:前者少了个BM字段,即不包含只读字段。 总结:通过测试我们发现,可以在图层的属性对话框中设置字段的只读和隐藏。如果设置了字段隐藏,则字段在编辑模板中不会出现,而且在Web端属性编辑对话框中也不会出现。如果设置了字段只读,则在编辑模板中该字段还会出现,但是显示为灰色;而在Web端,当编辑要素时自动弹出属性对话框时,不会显示只读的属性,如果是单独选择要素并编辑属性,则会显示只读属性,但显示为灰色,不能编辑。
文章来源:http://blog.csdn.net/esrichinacd/article/details/8025283
0 个评论
推荐内容
- ArcGIS Pro 2.4向独立server发布服务步骤
- Linux上安装ArcGIS Enterprise超详细教程——以Redhat7.2上安装ArcGIS Enterprise 10.5为例
- ArcGIS for Server 10.x 许可授权手册
- Portal for ArcGIS 10.X许可授权手册 (Windows版)
- SDE空间索引的内部运行机制2
- 你所不知的有趣投影方法
- arcgis server 无法手动删除切片
- ArcGIS for Server内置JS Viewer的离线部署和配置
- Linux上安装ArcGIS for Server超详细教程——以Redhat6.5上安装ArcGIS for Server 10.3.1为例
- 如何创建Geometry Service?
相关问题
- 如何优雅的使用ArcGIS知乎?
- 建设ArcGIS知乎平台的目和意义?
- ArcGIS知乎社区改进意见征集
- 【抽奖结果已出】ArcGIS知乎社区活动 之 你不知道的地理空间革命【转发分享有奖】【附奖品寄送照片】
- 苹果系统下可以使用arcgis 吗?
- 请问ArcGIS适合在局域网内用javaweb做二次开发吗?
- arcgis版本兼容性
- 请问大神们,怎么用ArcGIS做城镇间经济联系强度的图?
- ArcGIS如何求栅格图像的“质心”
- 在Visual studio 2015 中使用 Arcgis API for JavaScript v3.16 如何实现代码智能提示?
- 用arcgis做网络分析,求解失败,为什么出现事件点未找到设施点的警告呢?