2009-03-31 10 views
1

Klarstellung:ASP.NET-Code in Google Maps Infofenster

Vereinfacht gesagt, ich möchte eine ASP.NET-Update innerhalb des Info-Fenster von Google Maps setzen. Dies würde bedeuten, dass Benutzer von einem Info-Fenster aus mit meiner Anwendung interagieren könnten, ohne die Seite zu aktualisieren und ohne das aktuell geöffnete Informationsfenster zu schließen.

Weiß jemand, ob das möglich ist?


Update:

Vielen Dank an alle, die bisher geantwortet. Sehr geschätzt.

Was ich aus den Antworten entnommen habe, ist, dass:

  • der Update-Panel verfügt über eine eigene „mysteriös Mechanik“ ist, die die Update verursacht werden möglicherweise nicht richtig in den Infofenstern zu arbeiten. Der direktere Weg, JQuery zu verwenden, um Ajax-Aufrufe an einfache Webdienste zu machen, sollte die versteckte Komplexität des UpdatePanels beseitigen und die gewünschte Funktionalität ermöglichen.

Ich bin immer noch fasziniert, warum der Update Ansatz nicht funktioniert, und, warum verwenden würde man „das Modell brechen“ von Google Maps, wenn sicher ein Update macht nur als HTML und JavaScript mit einem Link zu das XMLHttpRequest-Objekt.


Ist es möglich, ASP.NET-Code in Google Maps-Informationsfenster zu platzieren?

Ich möchte ein UpdatePanel mit einigen AJAXified asp: Button im Infofenster platzieren.

AFAICT geben Sie einfach den HTML-Code an, der im Info-Fenster als String platziert werden soll. Daher sollten Sie ein UserControl in einen String rendern und diesen String in das Info-Fenster für den Browser einfügen. Weiß jemand, ob dies wahrscheinlich funktioniert?

Wenn dies in Google Maps nicht möglich ist, hat jemand eine Idee, ob eine solche Implementierung mit der entsprechenden Virtual Earth-Technologie möglich wäre?

+5

Dies sieht aus wie der falsche Ansatz zu nehmen und es bricht das Modell der beiden Google Maps und Virtual Earth, die Client-seitige Ajax verwenden. Wenn Sie Ihr großes Bildziel mit der Schaltfläche im Infofenster erklären können, können wir Ihnen alternative Ideen oder Lösungen anbieten. –

+0

Hallo José - bitte erklären Sie, warum dies das Modell von Google Maps bricht. Google Maps verwendet Ajax - aber ich sehe nicht, wie dies ein Update-Panel im Info-Fenster ausschließt, da ein Info-Fenster als HTML und Javascript rendert, das normalerweise in Info-Fenster eingefügt werden kann. Alle weiteren Informationen, die Sie zur Verfügung stellen können, werden sehr geschätzt – Ben

Antwort

2

José Basilio hat Recht. Verwenden Sie stattdessen $ jquery Live Events und fügen Sie reguläres HTML in das Info-Fenster ein. Verwenden Sie dann Ajax-Aufrufe mit jQuery, um die gewünschte Interaktivität zu erhalten. Das Problem neu einrahmen.

+0

Hallo Scott. Schätzen Sie Ihre Eingabe wirklich. Ich bin noch nicht mit $ jquery Live Events vertraut, aber ich werde sie als mögliche Lösung betrachten. – Ben

+0

Bounty Scott ausgezeichnet, weil, während es mich nicht schaffen, mit einem vollständigeren Verständnis der „warum“, er war die erste (wenn auch von vielen) diesem Weg in einer Antwort vorschlagen. Kredit an José Basilio für seinen Kommentar. – Ben

2

VirtualEarth hat eine Integration mit SilverLight, was bedeutet, dass Sie eine bessere .NET-Kontrolle über Ihre Web Mapping-Anwendung haben. Bei den meisten Implementierungen von Google Maps verwenden wir in der Regel reine HTML/JavaScript/CSS-Lösungen, um AJAX-Funktionen zu erstellen. So würden wir HTML/Javascript in die InfoWindow-Klasse einfügen, für jede benutzerdefinierte Funktionalität, die wir brauchten.

1

Ich bin mir nicht sicher, ob ich diesen Ansatz verwenden würde, aber wenn Sie ASP.NET-Code in ein Infofenster bringen möchten, könnten Sie einen iframe verwenden.

Alternativ haben Sie ein ASP.NET-Steuerelement wie GoogleMap Control berücksichtigt, das die gesamte Integration für Sie übernehmen würde?

Rich

+0

Ich habe versucht, die Kontrolle verwenden Sie erwähnt, aber bisher nicht gelungen, das Update-Panel aus dem Infofenster arbeiten zu bekommen (kein Zweifel, für die von José Basilio und Scott Hanselman genannten Gründen), obwohl ASP.NET-Steuerelemente auf die hinzugefügt werden Info-Fenster mit dieser Steuerung ganz bequem. – Ben

+0

Ich denke, der Trick ist, dass das Info-Fenster nicht existiert, bis es von JavaScript erstellt wurde. In diesem Szenario würde ich jQuery und ASP.NET-Webdienste verwenden, um die Fenster nach Bedarf aufzufüllen. Es ist mein Verständnis, dass die Google Map Control ist eine gute Option, wenn Sie alle Ihre Logik in dem Server-Code halten wollen und die JavaScript an eine API delegieren. Warum es nicht funktioniert, ich fürchte, ich arbeite selten mit UpdatePanels. Rich- – kim3er

+0

Der Autor des Steuer Google Map hat dies diskutiert, obwohl Update nicht speziell über: http://googlemap.codeplex.com/Thread/View.aspx?ThreadId=31695&ANCHOR Im Wesentlichen werden Sie Ihre eigene Gruppe gründen Steuerelement, das Sie der Marker.InfoWindow-Eigenschaft zur Laufzeit zuweisen. Was in Ihrem benutzerdefinierten Steuerelement gerendert wird, wird in das Informationsfenster eingefügt. Könnte funktionieren? –

2

Betrachten Sie einen anderen Ansatz und möglicherweise. Was Sie wirklich suchen, ist in der Lage zu sein, auf eine serverseitige Veranstaltung zu reagieren. Vielleicht so etwas, wenn Sie wirklich und wirklich auf serverseitige Ereignisse reagieren müssen.

http://windyroad.org/2006/07/25/event-driven-ajax-part-1-pushing-server-side-events/

Nachdem Sie die Ereignisse in Javascript sind Handling auf dem Client können Sie auf der Karte tun, was auch immer Sie

1

Update! = AJAX mögen. Sehen Sie sich an, wie Sie mit jQuery Ajax-Aufrufe ($ .ajax) durchführen und einfache Webdienste/etc. um zu erreichen, wonach du suchst. Während man technisch ein UpdatePanel irgendwie hineinwedeln kann, lohnt es sich einfach nicht.

Blick here für ein ausgezeichnetes Beispiel beim Aufruf AJAX/Web-Methoden mit jQuery.

+0

Danke Nikolaus. Die von Ihnen angegebene Verbindung ist eine nützliche Ressource. Bitte erklären Sie, was Sie meinen, wenn das UpdatePanel nicht Ajax ist. Ich verstehe, was Ajax ist, XMLHttpRequest verwenden, um Informationen an den Server zu übergeben. Sicherlich ist das alles, was das UpdatePanel tut? – Ben

0

Haben Sie an der ExtInfoWindow Kontrolle geschaut? Da Sie Ihr Problem nicht angegeben haben, kann ich nicht sagen, ob es eine Lösung ist, aber es scheint, dass es hier erwähnt werden sollte.

Verwandte Themen