首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未将经度和纬度分配给HiddenFields[updates]

未将经度和纬度分配给HiddenFields[updates]
EN

Stack Overflow用户
提问于 2019-04-02 22:07:08
回答 2查看 54关注 0票数 0

更新我正在尝试通过地理编码的后端(.cs)的aspx文件的纬度和经度,当推送到数据库。然而,当我尝试在地理编码函数中使用console.log时,没有分配任何HiddenFields,这给我带来了未定义。

我尝试了很多解决方案,但都没有奏效,或者问题半途而废,没有任何解决方案。我尝试过使用:

  1. Request.FormLatitude.UniqueID 2.使用SetTimeOut(在地理编码函数上) 3.在后端

使用hiddenField的.Value/.Value.toString()

不幸的是,这些都不起作用。

地理编码函数

代码语言:javascript
复制
        var hiddenlat = $("#<%= hiddenlat.ClientID %>");
        var hiddenlng = $("#<%= hiddenlng.ClientID %>");

         function getLatLng() {
         ...

        geocoder.geocode({ 'address': "'" + address + "'" }, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                console.log("postal code in post.aspx is ", <%= postalcode 
                 %>);
                var latitude = results[0].geometry.location.lat();
                var longitude = results[0].geometry.location.lng();
                hiddenlat.val(latitude);
                hiddenlng.val(longitude);
                console.log(hiddenlat.val()); // undefined
                console.log(hiddenlng.val()); // undefined
                var data = { "lat": latitude, "lng": longitude };
              } else {
                console.log('request fail');
            }

        });

        return true;

    }

这是隐藏字段

代码语言:javascript
复制
      <asp:HiddenField ID="hiddenlat" runat="server" />
        <asp:HiddenField ID="hiddenlng" runat="server" />

用于发布的按钮

代码语言:javascript
复制
         <asp:Button ID="btnSubmit" runat="server" CssClass ="btn btn- 
          success" Text="List" OnClientClick="getLatLng()" 
           OnClick="btnSubmit_Click"/>

后端代码

代码语言:javascript
复制
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        int lat = Convert.ToInt32(hiddenlat.Value);
        int lng = Convert.ToInt32(hiddenlng.Value);
        ........

          //Pushing of data into database
          uploadDao.listitem(user, date, item, rtype, ptype, paper, metal, 
           batt, elec, weight, desc, add, images[0], images[1], images[2], 
          images[3], unitno, postalcode, qty, district, Convert.ToInt32(lat), 
           Convert.ToInt32(lng));

            Response.Redirect("SellerListing.aspx?user=" + user);
    }

更新当我在地理编码函数中设置Hiddenfield的值时,HiddenFields中的值是未定义的。我可以知道为什么它是未定义的吗?我尝试了Console.log纬度和经度,它们都返回值。

EN

回答 2

Stack Overflow用户

发布于 2019-04-03 16:32:15

首先,您需要测试geocode函数。要测试geocode是否返回latitudelongitude,您需要登录控制台,如下所示。

代码语言:javascript
复制
function getLatLng(){
    //... your code.
    var latitude = results[0].geometry.location.lat();
    var longitude = results[0].geometry.location.lng();

    console.log("Latitude:" + latitude + ' and Longtitude:' + longtitude );


    //Return false in getLatLng()
    return false;

}
票数 0
EN

Stack Overflow用户

发布于 2019-04-03 16:51:12

HTML

代码语言:javascript
复制
<input type="text"  id="txtAddress" />
<input type="button"  value="Get Lat/Long"  id="btnGetLatLong"/>

<asp:Button Text="Save" runat="server" ID="btnSaveOnSever"  OnClick="btnSaveOnSever_Click" />

<asp:HiddenField   runat="server" ID="hdnLat" ClientIDMod="static"/>
<asp:HiddenField   runat="server" ID="hdnLong" ClientIDMod="static" />

Javascript

代码语言:javascript
复制
    $('#btnGetLatLong').click(function() {

        var geocoder = new google.maps.Geocoder();
        var address = $('#txtAddress').val();

        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();

                $('#hdnLat').val(latitude);
                $('#hdnLong').val(longitude);
                alert("Success");
            } else {
                alert("faild");
            } 
        }); 

    });

服务器端

代码语言:javascript
复制
protected void btnSaveOnSever_Click(object sender, EventArgs e)
{
    decimal lat = Convert.ToDecimal(hdnLat.Value);
    decimal lng = Convert.ToDecimal(hdnLong.Value);
    ........

      //Pushing of data into database
      uploadDao.listitem(user, date, item, rtype, ptype, paper, metal,
       batt, elec, weight, desc, add, images[0], images[1], images[2],
      images[3], unitno, postalcode, qty, district, lat,
       lng);

    Response.Redirect("SellerListing.aspx?user=" + user);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55476847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档