2011-12-29 61 views
0

更新 先生,這是我的網絡page.I的當前代碼根據烏拉圭回合的寶貴意見,但標題是不可見或不顯示什麼由我Assignig服務器端循環變量客戶端陣列

<script runat=server> 

     Dim mgps As New Text.StringBuilder 

     Public ReadOnly Property GPS() As String 
      Get 
       Return mgps.ToString 

      End Get 
     End Property 
     Dim station As New Text.StringBuilder 
     Public ReadOnly Property STA() As String 
      Get 
       Return station.ToString 

      End Get 
     End Property 

    </script> 

    <% Dim con As New OleDbConnection 
     con = New OleDbConnection("Data Source=sml; User ID=sml; Password=sml; provider=OraOLEDB.Oracle") 
     con.Open() 
     Dim cmd As OleDbCommand = New OleDbCommand("Select STA_NAME, GPS_ONE from GPS", con) 

     Dim ds As New DataSet 
     Dim I As Long 

     Dim da As New OleDbDataAdapter(cmd) 
     da.Fill(ds, "GPS") 
     mgps.AppendLine("[") 
     For I = 0 To ds.Tables("GPS").Rows.Count - 1 
      ' mgps.AppendLine("new google.maps.LatLng(" & ds.Tables("GPS").Rows(I).Item("GPS_ONE") & "),") 
      mgps.AppendLine("{GPS:new google.maps.LatLng(" & ds.Tables("GPS").Rows(I).Item("GPS_ONE") & "), Sta_Name:'" & STA & "'},") 
     Next I 
     mgps.AppendLine("];") 

     con.Close() 
     %> 
錯過所做的更改

UPDATE2 和JS代碼是在這裏

for(i=0; i<GPS.length; i++) 
{ 

     var image = 'ico/no.png'; 
     var infowindow = new google.maps.InfoWindow(); 
     var ContentString = GPS[i].TITLE 
     markers[i] = new google.maps.Marker(
     { 
     position: GPS[i].GPS, 
     map: map, 
     draggable:true, 
     icon:image, 
     title:GPS[i].TITLE 

     });      
     google.maps.event.addListener(markers[i], 'click', function() { 
     infowindow.setContent(ContentString); 
     infowindow.open(map,markers[i]); 
     }); 


}  

爵士我的信息窗口不開放什麼可能的問題

+0

GPS_ONE中的數據在您的GPS表中看起來像什麼? – 2011-12-29 13:24:10

+0

它看起來像這樣30.302631872323,73.084871561209 – 2011-12-29 13:25:23

+0

然後根據我的回答下面,它看起來像你缺少新的google.maps.LatLng(部分 – 2011-12-29 13:33:42

回答

0

這取決於你如何存儲在您的GPS表中您GPS_ONE列數據,但如果你的for循環是這樣的:

for(i=0; i<GPS.length-1; i++) 
{ 

     var image = 'ico/no.png'; 
     markers[i] = new google.maps.Marker(
     { 
     position: GPS[i], 
     map: map, 
     draggable:true, 
     icon:image, 
     title: (i+1) + GPS //why is this here? do you have two variables with the same name or did you mean GPS[i]? 
     });        
} 

,並在您GPS_ONE列中的數據是這樣的:

new google.maps.LatLng(31.204549793299,72.264183974237) 

然後你寫的應該是工作。

編輯:它看起來像你不是按照上面的示例創建一個谷歌地圖latlng對象的數組。試着改變你的循環在你的VB,看起來像這樣:

For I = 0 To ds.Tables("GPS").Rows.Count - 1 
     mgps.AppendLine("new google.maps.LatLng(" & ds.Tables("GPS").Rows(I).Item("GPS_ONE") & "),") 
    Next I 

編輯的第二個問題: 您可以將所有內容存儲在一個JSON對象,所以

For I = 0 To ds.Tables("GPS").Rows.Count - 1 
     mgps.AppendLine("{GPS:new google.maps.LatLng(" & ds.Tables("GPS").Rows(I).Item("GPS_ONE") & "), Title:'" & titleColumnSourceHere & "'},") 
    Next I 

然後你就可以使用這個JSON對象像這樣的:

for(i=0; i<GPS.length-1; i++) 
{ 

     var image = 'ico/no.png'; 
     markers[i] = new google.maps.Marker(
     { 
     position: GPS[i].GPS, 
     map: map, 
     draggable:true, 
     icon:image, 
     title: GPS[i].Title 
     });        
} 

很顯然,我會建議重新命名您的GPS可變的東西更適合,因爲它現在擁有非GPS數據

+0

我會編輯我的答案,所以它更有意義 – 2011-12-29 13:37:11

+0

您可以創建一個對象包含所有數據,但爲了簡單起見,只需製作第二個包含標題信息的數組,它們的大小應該相同,因爲它們來自相同的數據源,因此只需在title [i]處添加標題(假設您命名你的變量標題,並做所有其他你上次做的東西) – 2011-12-29 14:02:31

+0

當然,我只是將它添加到我的回答 – 2011-12-29 14:10:46