2016-04-10 8 views
0

Ich versuche eine Google Map mit mehreren Geo-Punkten und zugehörigen Info-Fenstern zu füllen, die alle in einer Datenbank gespeichert sind. Mein Code kompiliert ohne Fehler, aber der Infowindow-Inhalt funktioniert nicht richtig. Ich arbeite in C# und Javascript.Wie bevölkert Google Maps Info-Boxen aus der Datenbank?

Dieser Code füllt jedes Informationsfenster mit der Zeichenfolge "einige Wörter". Ich kann es auch zum Laufen bringen, indem ich "einige Wörter" durch @ row.Lat und/oder @ row.Lng ersetze und das Informationsfenster mit den korrekten Zahlen aus der Datenbank bevölke. Wenn ich jedoch @ row.Description eintippe (der Name der Zeile, wenn der Inhalt, den ich möchte, ist), dann wird die Karte nicht geladen, aber ich bekomme keine Fehlermeldung. Wenn ich @ row.randomStuff (eine nicht existierende Zeile) setze, bekomme ich einen Fehler, also weiß ich, dass @ row.Description gelesen, aber nicht verstanden wird.

@{ 
    var db = Database.Open("ClownDB"); 
    var query = "SELECT * FROM Point"; 

foreach (var row in db.Query(query)) { 
    <text> 
    var markerPosition = new google.maps.LatLng(@row.Lat, @row.Lng); 
    var marker = new google.maps.Marker({ 
     position: markerPosition, 
     map: ClownMap, 
     clickable:true}); 
    marker.content = "some words"; 

    var InfoWindow = new google.maps.InfoWindow(); 
     google.maps.event.addListener(marker, 'click', function({ 
      InfoWindow.setContent(this.content); 
      InfoWindow.open(ClownMap, this); 
      }); 
      </text> 
     } 
    }   
+0

Ich glaube nicht, Sie brauchen '@' vor 'row', da Sie bereits in einem Codeblock sind. – BoltBait

+0

Danke, aber herausnehmen der @s machte neue Fehler :( –

+0

Versuchen Sie um @ Zeile.Description mit Anführungszeichen. – BoltBait

Antwort

0

Ändern Sie die Zeile:

marker.content = "some words"; 

mit:

marker.content = "@row.Description"; 
0

Versuchen Sie, einen @ vor Ihrem foreach (var row in db.Query(query)) { Code setzen, wie in diesen .NET tutorial angegeben. Es sollte sein:

@foreach(var row in db.Query(selectQueryString)){

Andere Möglichkeiten der Weitergabe .NET Daten javascript sind here erwähnt.

Verwandte Themen