I used python to update a shapeFile through cursors. The Shapefile is updated, but there could be an open Attribute Table.
Manually you can hit "reload cache" to update the Attribute Table and see the changes. I would like the python script to reload the cache, so the user does not have to remember to do this.
2 Answers 2
Try the easy things first, like clearing and resetting the Layer's definition query or resetting its data source with the arcpy.mapping
module. Failing that you could use ArcObjects in Python to refresh the table view via ITableWindow.Refresh.
-
I wonder if the arcpy.RefreshActiveView() would work in his script.Michael Markieta– Michael Markieta2012年07月09日 16:27:12 +00:00Commented Jul 9, 2012 at 16:27
This works:
import arcpy
definition_query = layer.definitionQuery
# Change the Definition Query into something different
if definition_query == '':
oid = arcpy.ListFields(dataset = layer, field_type = 'OID')[0]
layer.definitionQuery = '{} > 0'.format(oid.name)
else:
layer.definitionQuery = ''
arcpy.RefreshActiveView()
# Restore the Definition Query
layer.definitionQuery = definition_query
arcpy.RefreshActiveView()
Explore related questions
See similar questions with these tags.