2011-01-06 16 views
1

Ich habe einen Suchbildschirm auf meiner Website mit verschiedenen Parametern. Es ist möglich, dass viele Datensätze zurückgegeben werden, der Benutzer möchte jedoch nur die Details eines Datensatzes sehen. In dem Fall, in dem viele Datensätze zurückgegeben werden, möchte ich ein modales Popfenster mit einem Datenraster anzeigen, das einige der Kernfelder anzeigt, und von dort aus kann der Benutzer den Datensatz auswählen, den er genauer sehen möchte, und dann schließt er modal-window und bringe sie zurück zur Hauptseite, wo zusätzliche Details angezeigt werden.Verwenden Sie einen ModalPopupExtender, um eine Tabelle anzuzeigen, und übergeben Sie den ausgewählten Datensatz dann an das Formular

Ich möchte wissen, wie Sie die Daten (die in einer Liste Sammlung sein werden) von meiner Aspx-Seite in das Popup-Fenster übergeben und das Raster mit den Informationen füllen.

Ich habe Server Seite versucht, aber die Steuerelemente auf dem Popup (d. H. Das Datagrid) sind nicht initialisiert. Ich habe gesucht, kann aber nichts im Internet finden, das zeigt, wie das geht.

+0

Erste Dinge zuerst, überprüfe meine Änderungen, habe ich die Dinge zu sehr anders erscheinen lassen als sie sind? Zweitens, wären Sie offen für andere Ideen _besides_ a MPE? Du wirst sowieso ein Postback machen müssen, also warum nicht zwei Controls in zwei Panels benutzen und das entsprechende Panel basierend auf dem Workflow-Schritt anzeigen/verstecken (du verwendest Postback, dafür ist es da). – jcolebrand

+0

ein wenig, ich habe die Datensätze in einer Sammlung auf der ASPX-Seite, ich muss diese Datensätze dann an die MPE übergeben. Mein Hauptproblem ist der MPE, der diese Aufzeichnungen zeigt. Ich habe ein einfaches Beispiel (basierend auf Darios Vorschlag) versucht, wo ich nur ein Panel auf der apsx-Seite mit einem Label habe und dann versuche, das Label mit der ID des ersten Datensatzes zu füllen und es wird nicht gesetzt. – Mike

Antwort

0

Ok, das ist, was Sie tun können:

das Gitter hinzufügen, ich tue es in der Regel in einem Panel

<asp:Panel ID="pnStudios" runat="server"> 
<asp:GridView ID="gvStudios" runat="server" OnSelectedIndexChanged="gvStudios_SelectedIndexChanged"> 
</asp:GridView> 
</asp:Panel> 

Link zu der mpe an der Platte

<asp:ModalPopupExtender ID="mpeStudios" runat="server" BehaviorID="mpeStudios" Enabled="True" TargetControlID="txtStudio" PopupControlID="pnStudios"> 
</asp:ModalPopupExtender> 

In Ihrem In diesem Fall können Sie die TargetControlID leer lassen.

Wenn Sie wollen, dass es dieses

gvStudios.DataSource = studios; 
gvStudios.DataBind(); 
mpeStudios.Show(); 

verwenden zeigen, wo Studios eine Liste Sammlung.

In der OnSelectedIndexChanged des Gitters können Sie den ausgewählten Wert erhalten und die Details erhalten, so dass Sie sie auf Ihrer Hauptseite anzeigen können, der MPE wird automatisch geschlossen, wenn ein Postback durchgeführt wird.

Ich hoffe, es hilft.

+0

danke Dario, ich werde das geben! – Mike

+0

Das hat nicht funktioniert, wie in meinem Kommentar oben habe ich es mit einem Raster versucht, aber auch mit einem einfachen Label auf dem MPE, um nur die ID des ersten Datensatzes in der Liste zu zeigen. Dies hat auch nicht funktioniert, effektiv wurde das Etikett nicht aktualisiert, ich denke, das liegt daran, dass es nicht zurück auf den Server gepostet wurde. Irgendwelche anderen Vorschläge? – Mike

+0

Legen Sie das Gitter in ein Updatepanel, vielleicht wird das lösen. – Dario