在后面的代码中获取更新的隐藏字段值

时间:2014-12-11 11:12:15

标签: c# asp.net hidden-field

我在aspx页面中有一个LinkBut​​ton,在OnClientClick上我正在更新隐藏字段的值,在OnClick上我将该值保存到数据库。

<asp:LinkButton runat="server" ID="lnkUpdateGeocode" Text="Update Geocode"
OnClientClick="updateGeoCode()" OnClick="lnkUpdateGeocode_Click" />

我的 updateGeoCode()功能

function updateGeoCode() {
        var address = document.getElementById('lblDisplayAddress');
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode({ 'address': address }, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                var latitude = results[0].geometry.location.lat();
                var longitude = results[0].geometry.location.lng();
                longitudeField = $get('<%=Longitude.ClientID %>');
                latitudeField = $get('<%=Latitude.ClientID %>');

                longitudeField.value = longitude;
                latitudeField.value = latitude;
            } else {
                alert('Geocode was not successful');
            }
        });
    };

我的 lnkUpdateGeocode_Click()

latitude = Latitude.Value.IsBlankOrNull() ? 0M : Convert.ToDecimal(Latitude.Value);
longitude = Longitude.Value.IsBlankOrNull() ? 0M : Convert.ToDecimal(Longitude.Value);

但我总是将纬度和经度值设为0.

所以我的问题是当我在javascript中更改时,如何在CodeBehind中获取HiddenField的更新值。任何帮助将不胜感激。

更新

我的HiddenField值设置为runat =&#34; server&#34;

<asp:HiddenField ID="Longitude" runat="server" EnableViewState="false" />
<asp:HiddenField ID="Latitude" runat="server" EnableViewState="false" />

我试过了Request.Form[Latitude.UniqueID],但它也给了空字符串。

enter image description here

2 个答案:

答案 0 :(得分:1)

正在更新javascript中的值。您必须使用Request.Form访问更新的值。

您将在Request.Form中获得更新的值。

string latitudeValue = Request.Form[Latitude.UniqueId];

示例:

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    <div class="col-md-4">
        <asp:HiddenField ID="HiddenField1" runat="server" Value="1" />
        <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click" OnClientClick="CallThis()">LinkButton</asp:LinkButton>
    </div>

    <script type="text/javascript">
        function CallThis() {
            $('#<%= HiddenField1.ClientID %>').val(100);
        }
    </script>
</asp:Content>

enter image description here

答案 1 :(得分:1)

runat =&#34;服务器&#34; 属性设置为隐藏字段,如下所示:

 <input type="hidden" value="" id="hiddenField" runat="server" />

现在,您可以直接访问代码中的隐藏字段值:

var val = this.hiddenField.Value;