Javascript 谷歌地图标记不返回其值
请考虑以下代码: 在my.ascx中:Javascript 谷歌地图标记不返回其值,javascript,asp.net,google-maps,webforms,Javascript,Asp.net,Google Maps,Webforms,请考虑以下代码: 在my.ascx中: <asp:Label ID="lblLat" runat="server" EnableViewState="false"></asp:Label> <asp:Label ID="lblLng" runat="server" EnableViewState="false"></asp:Label> <script type="text/javascript" src="http://maps.goog
<asp:Label ID="lblLat" runat="server" EnableViewState="false"></asp:Label>
<asp:Label ID="lblLng" runat="server" EnableViewState="false"></asp:Label>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var latlng = new google.maps.LatLng(5.4149253, 100.3407387);
var map = new google.maps.Map(document.getElementById('map'), {
center: latlng,
zoom: 17,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
position: latlng,
map: map,
draggable: true
});
google.maps.event.addListener(marker, 'dragend', function (event) {
marker.setPosition(event.latLng);
var yeri = event.latLng;
document.getElementById('lblLat').value = yeri.lat().toFixed(6);
document.getElementById('lblLng').value = yeri.lng().toFixed(6);
});
</script>
这两行返回空值。我能知道我做错了什么吗?它只是没有从地图上的标记中获取值。标签被转换成
span
,而像span
或div
这样的html元素没有ViewState
也没有将它们的文本/html发送到服务器端。提交的表单
元素是输入
元素,隐藏字段
就是其中之一。asp.net维护隐藏字段的ViewState
。恐怕您必须使用隐藏字段来维护回发之间标签的值
在.ascx中:
<asp:Label ID="lblLat" runat="server" EnableViewState="false"></asp:Label>
<asp:Label ID="lblLng" runat="server" EnableViewState="false"></asp:Label>
<!-- 1. Add hidden fields to store and submit the latlng values -->
<asp:HiddenField id="lblLatHidden" runat="server" />
<asp:HiddenField id="lblLngHidden" runat="server" />
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var latlng = new google.maps.LatLng(5.4149253, 100.3407387);
var map = new google.maps.Map(document.getElementById('map'), {
center: latlng,
zoom: 17,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
position: latlng,
map: map,
draggable: true
});
google.maps.event.addListener(marker, 'dragend', function (event) {
marker.setPosition(event.latLng);
var yeri = event.latLng;
document.getElementById('lblLat').innerHtml = yeri.lat().toFixed(6);
document.getElementById('lblLng').innerHtml = yeri.lng().toFixed(6);
// 2. update the hidden fields via javascript
document.getElementById('lblLatHidden').value = yeri.lat().toFixed(6);
document.getElementById('lblLngHidden').value = yeri.lng().toFixed(6);
});
</script>
<asp:Label ID="lblLat" runat="server" EnableViewState="false"></asp:Label>
<asp:Label ID="lblLng" runat="server" EnableViewState="false"></asp:Label>
<!-- 1. Add hidden fields to store and submit the latlng values -->
<asp:HiddenField id="lblLatHidden" runat="server" />
<asp:HiddenField id="lblLngHidden" runat="server" />
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var latlng = new google.maps.LatLng(5.4149253, 100.3407387);
var map = new google.maps.Map(document.getElementById('map'), {
center: latlng,
zoom: 17,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
position: latlng,
map: map,
draggable: true
});
google.maps.event.addListener(marker, 'dragend', function (event) {
marker.setPosition(event.latLng);
var yeri = event.latLng;
document.getElementById('lblLat').innerHtml = yeri.lat().toFixed(6);
document.getElementById('lblLng').innerHtml = yeri.lng().toFixed(6);
// 2. update the hidden fields via javascript
document.getElementById('lblLatHidden').value = yeri.lat().toFixed(6);
document.getElementById('lblLngHidden').value = yeri.lng().toFixed(6);
});
</script>
string lat = lblLatHidden.Value;
string lng = lblLngHidden.Value;