(PS: the namespaceis myControls and import it into default.aspx.vb) **** Public Class SContext Dim mapresource As MapResourceLocal = Nothing Public Function GetServerContext(ByVal mapObject As ESRI.ArcGIS.ADF.Web.UI.WebControls.Map) As ESRI.ArcGIS.Server.IServerContext Dim mf As IMapFunctionality = mapObject.GetFunctionality(0) mapresource = mf.Resource Dim servercontext As ESRI.ArcGIS.Server.IServerContext = mapresource.ServerContextInfo.ServerContext Return servercontext End Function Public Sub RefreshResourceLocal() mapresource.RefreshServerObjects() End Sub End Class Public Class MoveUp Implements ESRI.ArcGIS.ADF.Web.UI.WebControls.Tools.IMapServerCommandAction Sub ServerAction(ByVal info As ToolbarItemInfo) Implements IMapServerCommandAction.ServerAction 'Get map object from toolbar Dim map As ESRI.ArcGIS.ADF.Web.UI.WebControls.Map = CType(info.BuddyControls(0), ESRI.ArcGIS.ADF.Web.UI.WebControls.Map) map.RaisePostDataChangedEvent() 'Set up server context and serverobjects Dim servercontext As ESRI.ArcGIS.Server.IServerContext Dim context As myControls.SContext = New myControls.SContext servercontext = context.GetServerContext(map) Dim mapper As IMapServer = servercontext.ServerObject Dim mso As IMapServerObjects = servercontext.ServerObject Dim map2 As IMap = mso.Map(mapper.DefaultMapName) 'Grab selected layer index stored in hidden field Dim field As HiddenField = info.Toolbar.FindControl("Layer") 'Assign layer index, move to index variables Dim layer As Integer = CType(field.Value, Integer) Dim moved As Integer = layer -1 Dim Toc1 As Toc = info.Toolbar.FindControl("Toc3") 'Move layer and refresh the map map2.MoveLayer(map2.Layer(layer), moved) context.RefreshResourceLocal() mso.RefreshServerObjects() Toc1.Refresh() Dim sw As System.IO.StringWriter = New System.IO.StringWriter Dim writer As HtmlTextWriter = New HtmlTextWriter(sw) Toc1.RenderControl(writer) Dim htmlContent As String = sw.ToString sw.Close() Dim cr As New CallbackResult(Toc1, "content", htmlContent) info.Toolbar.CallbackResults.Add(cr) info.Toolbar.CallbackResults.CopyFrom(Toc1.CallbackResults) map.Refresh() End Sub End Class Public Class MoveDown Implements ESRI.ArcGIS.ADF.Web.UI.WebControls.Tools.IMapServerCommandAction Sub ServerAction(ByVal info As ToolbarItemInfo) Implements IMapServerCommandAction.ServerAction 'Get map object from toolbar Dim map As ESRI.ArcGIS.ADF.Web.UI.WebControls.Map = CType(info.BuddyControls(0), ESRI.ArcGIS.ADF.Web.UI.WebControls.Map) map.RaisePostDataChangedEvent() 'Set up server context and serverobjects Dim servercontext As ESRI.ArcGIS.Server.IServerContext Dim context As myControls.SContext = New myControls.SContext servercontext = context.GetServerContext(map) Dim mapper As IMapServer = servercontext.ServerObject Dim mso As IMapServerObjects = servercontext.ServerObject Dim map2 As IMap = mso.Map(mapper.DefaultMapName) 'Grab selected layer index stored in hidden field Dim field As HiddenField = info.Toolbar.FindControl("Layer") 'Assign layer index, move to index variables Dim layer As Integer = CType(field.Value, Integer) Dim moved As Integer = layer +1 Dim Toc1 As Toc = info.Toolbar.FindControl("Toc3") 'Move layer and refresh the map map2.MoveLayer(map2.Layer(layer), moved) 'Refresh whatever context.RefreshResourceLocal() mso.RefreshServerObjects() Toc1.Refresh() 'render control to htmlContent Dim sw As System.IO.StringWriter = New System.IO.StringWriter Dim writer As HtmlTextWriter = New HtmlTextWriter(sw) Toc1.RenderControl(writer) Dim htmlContent As String = sw.ToString sw.Close() 'Add changes to toc callback Dim cr As New CallbackResult(Toc1, "content", htmlContent) info.Toolbar.CallbackResults.Add(cr) info.Toolbar.CallbackResults.CopyFrom(Toc1.CallbackResults) 'refresh the map map.Refresh() End Sub End Class