Vb asp.net JavaScript在服务器端页面加载之前?

时间:2016-09-15 16:18:31

标签: javascript asp.net vb.net

目前,我在CafesNearMe.aspx.vb文件的Page Load事件中有strClsCafeListHTML = fGetCafeList()。

当页面打开时,会在页面中间部分显示咖啡馆列表。

如何延迟触发,直到类似于http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_geolocation的JavaScript将纬度和经度值放入2个隐藏字段,HiddenFieldCurrentLat和HiddenFieldCurrentLong?

(我希望fGetCafesList()检查这两个隐藏字段,以便后端SQL可以过滤<10英里。)

1 个答案:

答案 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的路走。