asp.net - registerclientscriptblock on javascript callback -
i have javascript function checks lat long , runs on page load. calls page method lat long. in page method, use registerclientscriptblock set bunch of variables, , return string of javascript display map uses variables. map loads, error variables expecting undefined.
<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 set bunch of array variables //var lats = new array(); var longs = new array(); etc... return "displaymap(" + latval + "," + longval + ");"; }
it's not gonna work because pagemethod not perform page cycle. mean page not postback , script not rendered.
you can work around returning script.
[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; }
Comments
Post a Comment