2009-07-18 11 views
0

Ich habe eine Tabelle in einem Formular, das viele identische Zeilen hat. Am Anfang jeder Zeile befindet sich ein Textfeld und eine Schaltfläche, die eine <cfwindow> erstellt, damit der Benutzer ein Inventar durchsuchen und ein einzelnes Element auswählen kann. Dann brauche ich den Namen und die ID dieses Elements, um zurück zur Hauptseite zu gelangen und das Textfeld zu füllen. Das Hauptseitenformular funktioniert gut. Die <cfwindow> funktioniert gut (Suche, Anzeige, etc ..). Ich kann keinen Weg finden, die Variable, die in <cfwindow> gesetzt ist, zurück auf die Hauptseite zu bringen und nur das Textfeld für diese bestimmte Zeile aufzufüllen und nicht die gesamte Seite neu zu zeichnen. Ich kann nicht einmal die <cfwindow> auf irgendeine Variable auf der Hauptseite zugreifen, und ich dachte, dass es nur ein schwebendes div war und Zugang zu allen der Hauptseitenvariablen hatte, die eingestellt werden.Übergabe und Abrufen von Variablen in ein cfwindow

Dies ist eine Zeile der Hauptseite (der Index wird durch zum Durchschleifen für jede Zeile Variablen eindeutige Namen erstellen):

<cfinput type="button" value="Select" name="xSelect#i#" onClick="ColdFusion.Window.create(blah blah blah...)/>.

<cfinput type="text" name="x1s#i#xName" value="form.x1s#i#xName" size="30" disabled="true"/>

im <cfwindow>, füllt eine Abfrage eine Liste von Elementen, die jeweils mit einer Radio-Button. Der Benutzer muss einen auswählen und die ID dieses Elements zurück an die Hauptseite für diese Zeile senden:

+0

Ich bin mir ziemlich sicher, was auch immer in Ihrem CFWindow auf das Javascript der Elternseite zugreifen kann. – Henry

Antwort

1

Ich schätze die Rückmeldung. Hier ist, was ich am Ende getan habe: - übergab die Variablen an das cfwindow via URL mit einer Schaltfläche und einem onClick = "ColdFusion.Window.create ..." - im cfwindow verwendete ich die URL-Variablen als Referenz und ich einen Suchdialog haben, der dann die Suchergebnisse zusammen mit der URL-Variablen (über URL-Variablen) an eine einfache Aktionsseite sendet, die nur ein Formular mit den Variablen anzeigt, die über einen onclick = "javascript: ColdFusion.navigate ..." gefüllt sind - Zurück auf der Hauptseite habe ich ein cfdiv, das über eine URL an die Aktionsseite bindet

Also, indem ich mit einer Referenz, die ich an meine Suchfunktion übergeben, ich halte es "markiert" und dann jedes Mal, wenn es aktualisiert wird erscheint auf der Hauptseite korrekt.

So funktioniert es jetzt und das letzte, was ich tun muss, ist alle meine dynamischen Variablen in ein Array zu setzen, um den Overhead zu reduzieren.

0

In ColdFusion können Sie etwas in den Sitzungsbereich eingeben oder Sie können Javascript verwenden, um ausgeblendete Felder auf der aufrufenden Seite festzulegen. Es mag eine bessere Lösung geben, aber das sind ein paar schnelle.

0

Verwenden Sie einen Funktionsaufruf Javascript in Ihrem Link im übergeordneten Fenster.

Verwenden Sie ColdFusion.Window.create aus der Javascript-Funktion, um das untergeordnete Fenster mit einer dynamischen URL zu erstellen, die die benötigten Variablen übergibt.

Et voilà.

+0

Danke für die schnellen Antworten Jungs. Ich hätte klarer sein sollen; Ich kann definitiv die Variablen über die URL an das cfwindow übergeben, ich bin fest darauf, sie wieder in das Hauptformular zu bekommen und nur das 1 Feld neu zu laden, nicht die ganze Seite. –

Verwandte Themen