Howdy I'm working on a field editor for Mapguide, I woudl like to give certain users the ability to edit the data through mapguide.
I have produced this code thus far I will work on making it more dynamic but at the moment it is locked down to a certain feature type and certain fields. I seem to be having a problem with the selection XML and generating a filter.... I'm sure there will be more problems but first things first The selection XML seems to come across correctly. <%@ Page Language="C#" ValidateRequest="false" %> <%@ Import Namespace="System" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Collections.Specialized" %> <%@ Import Namespace="System.Text" %> <!-- #Include File="../../../mapviewernet/common.aspx --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> <script runat="server"> String mapName = ""; String sessionId = ""; String ID = ""; String ROW = ""; String TENANT = ""; String DOCUMENT = ""; String imgid = ""; String VESSEL = ""; String STATUS = ""; String LENGTH = ""; String mySelXML = ""; String layerName = ""; </script> </head> <% Response.Charset = "utf-8"; InitializeWebTier(); GetRequestParameters(); MgUserInformation cred = new MgUserInformation(sessionId); //connect to the site and get a feature service and a resource service instances MgSiteConnection site = new MgSiteConnection(); site.Open(cred); MgResourceService resourceSrvc = site.CreateService(MgServiceType.ResourceService) as MgResourceService; MgFeatureService featureSrvc = site.CreateService(MgServiceType.FeatureService) as MgFeatureService; //Create a temporary map runtime object, locate the layer MgMap map = new MgMap(); map.Open(resourceSrvc, mapName); Response.Write(layerName); MgLayerBase currentLayer = map.GetLayers().GetItem(layerName); String currentClassName = currentLayer.GetClassName(); MgSelection newSel = new MgSelection(map); newSel.FromXml(mySelXML); String myFilter = new MgSelection(map, mySelXML).GenerateFilter(currentLayer, currentClassName); Response.Write(myFilter); //String myFilter = mySel.GenerateFilter(myLayer, myLayer.GetClassName()); Response.Write("myFilter: " + EscapeForHtml(myFilter)); MgFeatureCommandCollection updateSelection = new MgFeatureCommandCollection(); MgPropertyCollection properties = new MgPropertyCollection(); Response.Write(imgid); //create loop to loop through each property and update where needed properties.Add(new MgStringProperty("imgid", imgid)); MgUpdateFeatures updateCommand = new MgUpdateFeatures(currentClassName, properties, myFilter); updateSelection.Add(updateCommand); //Response.Write(mapName); //Response.Write(mySelXML); //ReleaseReader(featureSrvc.UpdateFeatures(mySel.GetResourceId(), updateSelection, false), updateSelection); map.Save(); %> <body> </body> </html> <script runat=server> void GetRequestParameters() { if (Request.HttpMethod == "GET") { GetParameters(Request.QueryString); } } void GetParameters(NameValueCollection parameters) { mapName = GetParameter(parameters, "MAPNAME"); sessionId = GetParameter(parameters, "SESSIONID"); ID = GetParameter(parameters, "ID"); ROW = GetParameter(parameters, "ROW"); TENANT = GetParameter(parameters, "TENANT"); DOCUMENT = GetParameter(parameters, "DOCUMENT"); imgid = GetParameter(parameters, "imgid"); VESSEL = GetParameter(parameters, "VESSEL"); STATUS = GetParameter(parameters, "STATUS"); LENGTH = GetParameter(parameters, "LENGTH"); mySelXML = GetParameter(parameters, "SELXML"); layerName = GetParameter(parameters, "layerName"); } void ReleaseReader(MgPropertyCollection res, MgFeatureCommandCollection commands) { if(res == null) return; for(int i = 0; i < res.GetCount(); i++) { MgFeatureCommand cmd = commands.GetItem(i); if(cmd.GetCommandType().Equals(MgFeatureCommandType.UpdateFeatures)) { MgFeatureProperty resProp = (MgFeatureProperty)res.GetItem(i); if(resProp != null) { MgFeatureReader reader = (MgFeatureReader)resProp.GetValue(); if(reader == null) return; reader.Close(); } } } } </script> -- View this message in context: http://n2.nabble.com/Field-editor-tp2505715p2505715.html Sent from the MapGuide Users mailing list archive at Nabble.com. _______________________________________________ mapguide-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapguide-users
