2011-09-20 50 views
3

我想在具有主頁面的ASP.NET頁面中顯示簡單的地圖。當我將代碼放入靜態HTML頁面時,一切正常,但使用asp.net時甚至沒有顯示任何錯誤。在比較fiddler中的請求/響應時,我可以看到,在使用asp.net母版頁時,google沒有發送任何圖像。谷歌地圖不會顯示在ASP.NET主頁面

這裏是我的客戶端代碼(我可以在這裏打了一個破發點):

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    <style type="text/css"> 
     html { height: 100% } 
     body { height: 100%; margin: 0; padding: 0 } 
     #map_canvas { height: 100%; background-color:#eeeeee;} 
    </style> 

    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 
    <script type="text/javascript"> 
     function initialize() { 
      var latlng = new google.maps.LatLng(-34.397, 150.644); 
      var myOptions = { 
       zoom: 8, 
       center: latlng, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
      var mapDiv = document.getElementById("map_canvas"); 
      var map = new google.maps.Map(mapDiv, myOptions); 
       } 

    </script> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server"> 
    <div id="map_canvas" style="width:100%; height:100%"></div> 
</asp:Content> 

我調用腳本從服務器:

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
Dim mybodytag As HtmlGenericControl 
mybodytag = Page.Master.FindControl("mainbody") 
mybodytag.Attributes.Add("onload", "initialize()") 
End Sub 

回答

4

找到了解決辦法。我將div%更改爲固定的px大小,它的工作原理如下:

<div id="map_canvas" style="width:800px; height:600px"></div>