目前,我在 CafesNearMe.aspx.vb 文件的页面加载事件中有 strClsCafeListHTML=fGetCafeList() 。
当页面打开时,页面中间部分会显示咖啡馆列表。
如何延迟触发,直到类似于 http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_geolocation 的 JavaScript已将纬度和经度值放入 2 个隐藏字段:HiddenFieldCurrentLat 和 HiddenFieldCurrentLong?
(我希望 fGetCafesList() 检查这两个隐藏字段,以便后端 SQL 可以过滤 <10 英里。)
最佳答案
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 的道路走下去。
关于javascript - 服务器端页面加载之前的 Vb asp.net JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39515897/