2017-09-26 192 views
0

我必须更新使用Web控件(https://github.com/simplovation/webmapsve)制作的userControl,该控件是Bing mapcontrol V6.3的包装。由于后者最近已被MS终止,因此我们必须更新。使用WebMapsVe不再是一种选择,该回购的最后一次提交是在2016年6月。无法在代码隐藏的userControl中更新JavaScript中的Bing地图

显然重构整个应用程序直接使用Bing地图控件将是更可取的,但也不是一个选项,该应用程序如此广泛,现在工作太多了。所以我试图在我们的userControl中使用Bing mapcontrol v8。

当控件的生命周期中userControl属性的值发生变化时,我必须根据userControl的属性更新地图位置。由于Bing mapControl v8是由javascript控制的,我必须调用一个javascript函数或在属性更改时更新javascript中的值。我真的找不到一个体面的方式来做到这一点。 我已经搜索了一个答案,直到脸上蓝色,但我不能拿出一个体面的答案。

我都试过

ScriptManager.RegisterStartupScript() or ClientScript.RegisterClientScriptBlock() 

设置的脚本,但似乎当控件初始化为一次工作。我无法找到触发脚本在启动时更新地图位置的方法。我还研究过在js中设置超时轮询某个值,但是我找不到一种方法来从属性所在的代码隐藏中更新该值。 什么是在userControl中做到这一点的好方法?

回答

0

看看Bing地图V6.3在这里V8垫片:https://github.com/rbrundritt/BingMapsV63ToV8Shim

这可能是比试图移植代码更容易。

+0

我已经用aspx页面中的表单替换了对搜索功能的Ajax调用(这允许用户搜索地图上的项目)。 Ajax调用的回调然后直接在javascript中设置地图位置。这运作良好,并且相当容易实施。据(内部)用户,这比原来的版本更好:) –