如何在Postback上获取隐藏的字段值

时间:2013-12-19 23:28:06

标签: c# javascript asp.net

这是我的java脚本

 $('#geoLocation').click(function () {
        alert("I am Here");
        if (navigator.geolocation) {
            // Get Latitude and Longitude
            navigator.geolocation.getCurrentPosition(showPosition);

        }
        else {
            // Hide Locator Panel, if Browser not supported
            document.getElementById('panel1').style.display = 'none';
        }
    });

    function showPosition(position) {
        //  x.innerHTML = "Latitude: " + position.coords.latitude +
        // "<br>Longitude: " + position.coords.longitude;
          document.getElementById('latitude').innerHTML = position.coords.latitude;
          document.getElementById('longitude').innerHTML = position.coords.longitude;


    }

我需要在CodeBehind的Postback中获取纬度和经度值(隐藏在屏幕上)。我该怎么做呢?

2 个答案:

答案 0 :(得分:1)

我认为“纬度”和“经度”是页面上的HTML元素吗?

在这种情况下,您应该能够为它们添加runat =“server”属性,然后它们将在服务器端代码中可用。如果您的站点是ASP.NET 4 / 4.5,您还可以添加ClientIDMode =“Static”,并且您的showPosition函数将按原样运行;如果没有,你可以给他们一个类,并使用jQuery类选择器来获取你的两个项目。

答案 1 :(得分:1)

您可以使用$('#HiddenFieldId').val()将数据分配给客户端的 HiddenField

<div id="geoLocation">Click me to retrieve Geo Location</div>
<asp:HiddenField runat="server" ID="LatitudeHiddenField" />
<asp:HiddenField runat="server" ID="LongitudeHiddenField" />

<script type="text/javascript" 
  src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
    $('#geoLocation').click(function () {
        if (navigator.geolocation) {
            // Get Latitude and Longitude
            navigator.geolocation.getCurrentPosition(showPosition, geoLocationErrors);
        } else {
            // Hide Locator Panel, if Browser not supported
            document.getElementById('panel1').style.display = 'none';
        }

        function showPosition(position) {
            $('#<%= LatitudeHiddenField.ClientID %>').val(position.coords.latitude);
            $('#<%= LongitudeHiddenField.ClientID %>').val(position.coords.longitude);    
        }    

        function geoLocationErrors() {
            alert("Your browser doesn't support Geo Location.");
        }
    });

</script>

然后您可以从服务器端的 HiddenField 中检索这些值为 -

var latitute = LatitudeHiddenField.Value;
var longitude = LongitudeHiddenField.Value;