2016-09-15 4 views
0

В настоящее время у меня есть strClsCafeListHTML = fGetCafeList() в событии Load Load в файле CafesNearMe.aspx.vb.Vb asp.net JavaScript перед загрузкой на стороне сервера?

Отображает список кафе в средней части страницы при открытии страницы.

Как задержать это от стрельбы до тех пор, пока JavaScript, подобный http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_geolocation, не поместит значения широты и долготы в два скрытых поля, HiddenFieldCurrentLat и HiddenFieldCurrentLong?

(Я хочу fGetCafesList(), чтобы проверить эти два скрытых поля, так что базовая SQL может фильтровать < 10 миль.)

ответ

2

В.Б. Page_Load событие всегда будет перед Javascript начинается. Вы можете сделать обходной путь, например, положить свой strClsCafeListHTML=fGetCafeList() на событие нажатия кнопки, а затем вызвать эту кнопку, щелкнув по ссылке JavaScript после скрытых полей. При использовании Jquery, вы могли бы сделать что-то вдоль линий этого:

Jquery

$(document).ready(function() { 
    //populate hidden fields etc 
    $('#myButton').trigger("click"); 
)}; 

HTML

<asp:Button runat="server" id="myButton" clientIDMode="static" style="display: none;" onClick="myButton_click"></asp:Button> 

VB Code-за

Protected Sub myButton_Click(sender As Object, e As EventArgs) 

    'Do code behind stuff 
    'strClsCafeListHTML=fGetCafeList() 

End Sub 

Опасность здесь состоит в том, что событие нажатия кнопки запускает еще одну обратную передачу, однако это всегда будет иметь место при запуске кода на стороне сервера. Если перезагрузка страницы является проблемой, вы можете попробовать использовать <asp:UpdatePanel> или спуститься по дороге AJAX.

Смежные вопросы