Присвойте переменную цикла на стороне сервера массиву на стороне клиента - PullRequest
0 голосов
/ 29 декабря 2011

Обновление Сэр, это текущий код моей веб-страницы. Я внес изменения в соответствии с вашим предложением, но заголовок невидим или не отображает то, что я пропустил

  <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]);
        });


}    

Сэр, мое информационное окно не открывается, в чем может быть проблема

1 Ответ

0 голосов
/ 29 декабря 2011

Это зависит от того, как вы храните данные в столбце GPS_ONE в таблице GPS, но если ваш цикл 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)

тогда то, что вы написали, должно работать.

РЕДАКТИРОВАТЬ: похоже, вы не создаете массив объектов Google Map 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...