如果没有asp.net webform中的表单元素,Google地图就不会显示

时间:2015-07-03 10:48:00

标签: asp.net forms google-maps google-maps-api-3

我的aspx页面内容是这个

<body>
 <div id="mapDiv"></div>
 <form id="form" runat="server"></form>
</body>

在代码隐藏中我创建了脚本

string script = string.Format(@"function initialize() {{
                    var mapOptions = {{
                    center: new google.maps.LatLng({0},{1}),
                    zoom: 8,
                    tilt: 30
                    }};

                var map = new google.maps.Map(document.getElementById('mapDiv'), mapOptions);

                {2}                                                        
                }}

                function addInfoWindow(marker, content) {{
                    var infoWindow = new google.maps.InfoWindow({{
                        content: content
                    }});

                    google.maps.event.addListener(marker, 'click', function () {{
                        if (currentInfoWindow != null) {{
                            currentInfoWindow.close(); 
                        }}

                        infoWindow.open(marker.get('map'), marker);
                        currentInfoWindow = infoWindow;
                    }});
                }}                                                          

                google.maps.event.addDomListener(window,'load',initialize);
                var currentInfoWindow = null;",
                coordinates[0], coordinates[1], DrawMarkers(groups));

ClientScript.RegisterStartupScript(this.GetType(), "mapInit", script, true);

如果aspx包含div和表单元素,就像现在一样,一切正常。但是我必须使用这个aspx文件的母版页。当我相应地更改其内容时,我必须删除表单元素,因为主文件中已有一个。但是当我删除表单元素时,地图就会消失。

1 个答案:

答案 0 :(得分:0)

由于某种原因,在我的自定义CSS中,我设置了&#34;身高:100%&#34;并且浏览器不喜欢它,虽然&#34;宽度:100%&#34;很好。所以我用

解决了我的问题
var mapDiv = document.getElementById('mapDiv'); 
var height = Math.max(0, document.documentElement.clientHeight - 110).toString();
mapDiv.setAttribute('style','height: ' + height + 'px');