Frage

Ich habe dieses Szenario kann jemand die Lücken für mich füllen? Es ist wie folgt:

Datenbanktabelle Maps' Felder:

MAP_ID, Koordinaten, MarkerTitle, MarkerField.

Code-Behind:

Dim myTableAdapter As New myDatasetTableAdapters.tblMapsTableAdapters
Dim myTable As myDataset.tblMapsDataTable = myTableAdapter.GetAllMaps()

Im Moment bin ich die Zuweisung eines Wertes zu einer Zeit, in meiner Seite ein googleMap zeigen zu können, einfach durch Freund Variablen mit und in Code-Behind, die ihre Werte auf Pageload bekommt und ich deklarierten Variablen mit dem gleichen Namen in meinem Skript das zeigt die Karten, es ist wie:

Code-Behind:

Friend coordinates As String
Friend zoom As String
Friend maptitle As String
Friend text As String

Script:

<script type="text/javascript">
  function load() {
    var map = new GMap2(document.getElementById("map"));
    var marker1 = new GMarker(new GLatLng(<%=coordinates%>));
    var html1="<%=maptitle%><br/>" + "<%=text%>";
    map.setCenter(new GLatLng(<%=coordinates%>), 5);
    map.setMapType(G_HYBRID_MAP);
    map.addOverlay(marker1);

    map.addControl(new GLargeMapControl());
    map.addControl(new GScaleControl());
    map.addControl(new GMapTypeControl());
    marker.openInfoWindowHtml(html1);
  }
</script>

Wie kann ich aus dem obigen Verfahren, um etwas gehen wie: eine ganze tableOfMaps zum JavaScript vorbei oder lesen diese Daten ihre (Abrufen von Datenbankinformationen aus der JavaScript-Seite) und Iterieren diese dann mögen:

For Each map In MapsTable
{
var marker1 = new GMarker(new GLatLng(<%=coordinates%>));
var html1="<%=maptitle%><br/>" + "<%=text%>";
map.addOverlay(marker1);
marker.openInfoWindowHtml(html1);
}

Ich weiß, das ist zu viel zu fragen, so wird dazu beitragen, sehr geschätzt werden ...

War es hilfreich?

Lösung

Ich werde jQuery verwenden, um Dinge zu vereinfachen, hofft, das ist OK ...

Führen Sie die Datenbank-Lookups auf der Server-Seite und Daten in die HTML emittieren. Sie sollten suchen, so etwas zu produzieren:

<div id="maps-table">
  <div class="map-entry">
    <span class="map-title">Title 1</span>
    <span class="map-text">Text 1</span>
    <span class="map-coordinates">Coordinates 1</span>
  </div>
  <div class="map-entry">
    <span class="map-title">Title 2</span>
    <span class="map-text">Text 2</span>
    <span class="map-coordinates">Coordinates 2</span>
  </div>
  ...
</div>

Wenn Sie so etwas wie ASP.NET verwenden können Sie eine asp verwenden. Repeater

Wenn Sie die Daten in Ihrem HTML gerendert haben, können Sie über sie abfragen und iterieren:

$('#maps-table .map-entry').each(function() {

  var title = $(this).find('.map-title').text();
  var text = $(this).find('.map-text').text();
  var coordinates = $(this).find('.map-coordinates').text();

  // Add map markers here, eg:

  var marker = new GMarker(new GLatLng(coordinates));
  var html = title + "<br/>" + text;

  map.addOverlay(marker);
  marker.openInfoWindowHtml(html);

});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top