繁体   English   中英

javascript回调上的registerclientscriptblock

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM