目前,我在CafesNearMe.aspx.vb文件的Page Load事件中有strClsCafeListHTML = fGetCafeList()。
当页面打开时,会在页面中间部分显示咖啡馆列表。
如何延迟触发,直到类似于http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_geolocation的JavaScript将纬度和经度值放入2个隐藏字段,HiddenFieldCurrentLat和HiddenFieldCurrentLong?
(我希望fGetCafesList()检查这两个隐藏字段,以便后端SQL可以过滤<10英里。)
答案 0 :(得分:2)
VB 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代码隐藏
Protected Sub myButton_Click(sender As Object, e As EventArgs)
'Do code behind stuff
'strClsCafeListHTML=fGetCafeList()
End Sub
这里的问题是按钮单击事件将触发另一个回发,但是在运行服务器端代码时总会如此。如果重新加载页面是一个问题,您可以尝试使用<asp:UpdatePanel>
或沿着AJAX的路走。