页面刷新后地理自动完成功能无效

时间:2012-10-11 07:06:58

标签: javascript asp.net google-maps google-maps-api-3 asp-classic

我在may asp.net应用程序中使用geo-autocomplete。我的问题是,当我第一次在我使用地理自动完成的文本框上写东西时,显示结果。但我在我的页面上有一个autopost返回文本框事件,当他们触发google geo-autocomplete无法正常工作时,我的html for google-autocomplete是这样的:

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="../lib/jquery.autocomplete_geomod.js"></script>

<script type="text/javascript" src="../js/geo_autocomplete.js"></script>
<link rel="stylesheet" type="text/css" href="../lib/jquery.autocomplete.css" />


<script type="text/javascript">
    $().ready(function() {

        var latlng = new google.maps.LatLng(-34.397, 150.644);
        var myOptions = {
            zoom: 8,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById('<%=map_canvas.ClientID %>'), myOptions);

        // use all the autocomplete options as documented at http://docs.jquery.com/Plugins/Autocomplete
        /* additional geo_autocomplete options:
        mapkey : 'ABQ...' (required for Static Maps thumbnails, obtain a key for your site from http://code.google.com/apis/maps/signup.html)
        mapwidth : 100
        mapheight : 100
        maptype : 'terrain' (see http://code.google.com/apis/maps/documentation/staticmaps/#MapTypes)
        mapsensor : true or false
        */
        $('#<%=txtPickupCity.ClientID %>').geo_autocomplete(new google.maps.Geocoder, {
            mapkey: 'ABQIAAAAbnvDoAoYOSW2iqoXiGTpYBTIx7cuHpcaq3fYV4NM0BaZl8OxDxS9pQpgJkMv0RxjVl6cDGhDNERjaQ',
            selectFirst: false,
            minChars: 3,
            cacheLength: 50,
            width: 300,
            scroll: true,
            scrollHeight: 330
        }).result(function(_event, _data) {
            if (_data) map.fitBounds(_data.geometry.viewport);
        });

    });
</script>
<style>
.ac_results li img {
    float: left;
    margin-right: 5px;
}
</style>

这是我使用地理代码的文本框

<asp:TextBox ID="txtPickupCity" runat="server" MaxLength="50" 
                                                            Width="140px"></asp:TextBox>

2 个答案:

答案 0 :(得分:1)

感谢所有我花了4个小时在谷歌上找出问题,最后这个问题很简单

在您的Page_load()上

,您可以使用此代码来帮助您

 ScriptManager.RegisterStartupScript(Page, this.GetType(), "delCty", "delCity();", true);

这里“delCty”是Key“delCity()”是函数名。是的意思是我给函数的函数名称

     <script type="text/javascript">
    function delCity() 
{
}

享受编码。我想这会对你有帮助

答案 1 :(得分:0)

我不确定这是否与我曾经历过的情况相同,但你可以试试这个: 如果没有设置Latitude和/或Langitude(这意味着它没有任何值),我的JavaScript根本不起作用。所以我添加了一个条件(代码不是任何特定的编程语言),我的问题就消失了:

If Latitude = "" then Latitude = 0
If Langitude = "" then Langitude = 0