![](/img/trans.png)
[英]Registering Javascript block in the codebehind: RegisterClientScriptBlock issue
[英]registerclientscriptblock on javascript callback
我有一个javascript函数,用于检查纬度,并在页面加载时运行。 它使用lat long调用page方法。 在page方法中,我使用RegisterClientScriptBlock设置一堆变量,然后返回一串javascript以显示使用这些变量的映射。 该地图已加载,但我收到一个错误,指出其期望的变量未定义。
<script type="text/javascript">
function check() {
if (navigator.geolocation) {
var panelProg = $get('progress');
panelProg.style.display = '';
var panelProg = $get('map');
panelProg.style.display = 'none';
navigator.geolocation.getCurrentPosition(function (position) {
// Access them accordingly
PageMethods.SetSession(position.coords.latitude, position.coords.longitude, callBack);
});
}
}
function callBack(result) {
eval(result);
}
</script>
[WebMethod]
public static string SetSession(string latval, string longval)
{
//does work, calls RegisterClientScriptBlock to set a bunch of array variables
//var lats = new Array(); var longs = new Array(); etc...
return "displaymap(" + latval + "," + longval + ");";
}
由于PageMethod不会执行Page循环,因此无法使用。 我的意思是页面不会回发并且脚本不会呈现。
您可以通过返回脚本来解决此问题。
[WebMethod]
public static string SetSession(string latval, string longval)
{
var js = "lats = new Array(); var longs = new Array();"; //etc...
js += "displaymap(" + latval + "," + longval + ");";
return js;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.