ThinkGeo.com    |     Documentation    |     Premium Support

Edit feature

Hi,


I have a feature in a FeatureLayer. When the user clicks on it, the code-behind puts it in EditOverlay to edit it. Then the user must click again if he wants modify the shape (the grips appear at the second click). Can I do that with only one click?


Could you help me please?


Thank you!



andre,



Welcome to ThinkGeo forum and thanks for your information about this post.



If you want to use EditOverlay to edit shapes, and it only support edit one shape at one time. So please refer to the codes below:


        var OnMapCreated = function(map) {
            var editOverlays = map.getLayersByName("EditOverlay");
            if (editOverlays.length == 1) {
                // Map1 is the ID for map control
                var selectControl = <%=Map1.ClientID %>.GetMapParser().paintControls.Modify.selectControl;
                var editOverlay = editOverlays[0];
                editOverlay.multiple = true;
                for (var i=0, len=editOverlay.features.length; i<len; i++){
                    //select the feature you want
                    selectControl.select(editOverlay.features[i]);
                }
            }
        }


If you still have any problems about this problem, please feel free to let me know.


Thanks,


Khalil


 



Hello,


thank you very much for your code. It's exactly what I needed!


I take advantage from your answer to ask you another question: I want to delete a feature clicking on. The process is managed in the code-behind, in the event Click of the map. But I want to open a popup, or a javascript Confirm("Do you really want to delete the feature") for the user before the postback.


So here is what I want: I click on the feature, a popup appears to ask if the user confirms, and in the code-behind, the feature is deleted only if the user has confirmed.


Have you any way to do that?


Thank you again!


Andre


 



andre, 
  
 I think you can consider to use Callback mechanism to implement your requirement.  
 You can pass the lonlat for clicked position to server and then get the feature from FeatureLayer. 
 Also you can construct a popup object using OpenLayers and add content html to popup including client side button to tirgger the callback. 
  
 Thanks, 
  
 Khalil

Khalil, 
  
 thank you for your answer, it’s perfect! 
  
 André

We are glad we found the solution for you. If you have any other questions, the Map Suite team will be ready to assist you.