2009-06-03 10 views
0

Ich muss ein Raster in einen IFrame einfügen. Ich wähle eine Zeile, dann wird das Detail in die Hauptseite geladen, die diesen Frame hostet. Wie macht man?Wie erkennt man ein Klicken eines Gitters in einem Iframe?

Ein Bild ist besser als 1000 Wörter. Ich möchte eine Master-Detail-Ansicht wie wufoo reproduzieren. Das "schwarze" Gitter befindet sich innerhalb des Iframes. Das Gitter ist also immer oben. Wenn Sie eine Zeile auswählen, wird die Detailseite auf der Rückseite geladen.

Wie wird ein Beitrag auf der Hauptseite angezeigt, wenn ein Ereignis mit Zeilenklick in einem iframed-Grid in asp.net mvc ausgelöst wird?

alt text

+0

Ich änderte die Idee. Ich benutze ein div mit {position: fixed; Z-Index: 1000;}. Verwenden Sie für das Grid ein jquery-Grid-Plugin. Das Ich habe das Ereignis OnSelectRow codiert, das durch einen von jQuery selbst bereitgestellten Ajax-Aufruf eine neue Seite anzeigt. –

Antwort

1

Dies ist keine Antwort auf Ihre eigentliche Frage, aber wenn Sie ordnungsgemäß Größe divs mit CSS von "Überlauf: Auto" verwendet, könnten Sie das gleiche Layout ohne zu kommunizieren über Frames.

+1

es ist wirklich schwierig, zwischen Frames zu kommunizieren. Ich gebe auf und ich entschied mich für divs. Danke für deinen Tipp. –

1

Im iframe:

"oben" Variable (oder window.top oder self.top) sollte den Hauptrahmen verweisen. Sie könnten etwas wie top.location = nextUri;

Alternativ gibt es ein "target" -Attribut für Links, die alternative Frames angeben können. Das Link-Markup wäre etwa <a href="uri1" target="_top">. Sie könnten Klickereignisse von der Zeile an den Link mit document.getElementsByTagName ("a") [0] .click() weiterleiten, vorausgesetzt, dass der Link der erste in der Zeile ist. (Das <base> Element könnte auch verwendet werden.)

Denken Sie daran, dass das Ersetzen des Hauptrahmens erfordert, dass der Iframe erneut geladen wird.