我正在使用HTML5地理位置来获取用户当前位置&在谷歌地图上显示这个。但是,我还想返回此位置的lat和long值,并将这些值传递给SQL数据源查询。我想要一个lat变量和一个long变量来传递。为了获得lat我只是分配var jsVar = position.coords.latitude,但这并没有返回任何东西。我意识到我应该使用hiddenfields来实现将var发送到服务器,但是当有多个隐藏字段时,我并不完全确定如何做到这一点。任何帮助将非常感激。这就是我所拥有的:
的Javascript
function SetHiddenVariable() {
var jsVar = position.coords.latitude;
// Set the value of the hidden variable to
// the value of the javascript variable
var hiddenControl = '<%= inpHide.ClientID %>';
document.getElementById(hiddenControl).value = "Latitude = " + jsVar;
}
ASP.NET
<body onload="SetHiddenVariable()">
<form id="form1" runat="server">
<div>
<input id="inpHide" type="hidden" runat="server" />
<asp:TextBox ID="txtJSValue" runat="server"></asp:TextBox>
<asp:Button ID="btnJSValue"
Text="Click to retrieve Javascript Variable"
runat="server" onclick="btnJSValue_Click"/>
</div>
</form>
</body>
C#背后的代码
protected void btnJSValue_Click(object sender, EventArgs e)
{
txtJSValue.Text = inpHide.Value;
}
答案 0 :(得分:0)
你可以在客户端汇总数据(使用逗号或其他一些对你有意义的分隔符,然后在服务器端分开。在这种情况下你只需要使用一个变量。
答案 1 :(得分:0)
这是执行此操作的html方式,可以帮助您入门。您只需要连接按钮单击事件并将输入转换为服务器端控件。祝你好运!
<!DOCTYPE html>
<html>
<head>
<script>
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(success);
}
function success(position) {
document.getElementById("lat").value = position.coords.latitude;
document.getElementById("long").value = position.coords.longitude;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
Lat: <input id="lat" type="text" />
Long: <input id="long" type="text" />
</div>
</form>
</body>
</html>