2017-09-26 7 views
0

Je dois mettre à jour un userControl qui a été fait en utilisant un contrôle web (https://github.com/simplovation/webmapsve) qui était un wrapper autour de Bing mapcontrol V6.3. Depuis que ce dernier a été arrêté récemment par MS, nous devons mettre à jour. L'utilisation de WebMapsVe n'est plus une option, la dernière validation de ce repo date de juin 2016.Impossible de mettre à jour la carte Bing en javascript dans un userControl à partir du code-behind

Il est préférable de refacturer l'ensemble de l'application pour utiliser le contrôle des cartes Bing directement, mais ce n'est pas une option non plus, l'application est si étendue que serait trop de travail en ce moment. J'essaie donc d'utiliser le Bing mapcontrol v8 dans notre userControl.

Je dois mettre à jour la position de la carte en fonction d'une propriété de la commande userControl lorsque la valeur de la propriété userControl change pendant la durée de vie du contrôle. Puisque le Bing mapControl v8 est contrôlé par javascript, je dois appeler une fonction javascript ou mettre à jour une valeur en javascript lorsque la propriété change. Je ne peux pas vraiment trouver un moyen décent de le faire. J'ai cherché une réponse à cette question jusqu'à ce que le visage soit bleu mais je ne peux pas trouver une réponse décente.

J'ai essayé deux

ScriptManager.RegisterStartupScript() or ClientScript.RegisterClientScriptBlock() 

pour définir un script, mais il semble fonctionner qu'une seule fois lorsque le contrôle est initialisé. Je n'arrive pas à trouver un moyen de déclencher un script pour mettre à jour la position de la carte après le démarrage. J'ai également cherché à définir un délai d'attente dans js pour interroger une valeur, mais je ne trouve pas de moyen de mettre à jour cette valeur à partir du code-behind où la propriété réside. Quel serait un bon moyen de le faire dans un userControl?

Répondre

0

Jetez un oeil à la Bing Maps V6.3 à shim V8 ici: https://github.com/rbrundritt/BingMapsV63ToV8Shim

Il est peut-être plus facile que d'essayer de migrer votre code.

+0

J'ai remplacé le formulaire dans la page aspx par un appel Ajax à la fonction de recherche (cela permet à l'utilisateur de rechercher des éléments sur la carte). Le rappel de l'appel Ajax définit alors la position de la carte directement en javascript. Cela fonctionne bien et était raisonnablement facile à mettre en œuvre. Selon les utilisateurs (internes) cela fonctionne mieux que la version originale :) –