Wie man die ausgewählte Zeile des detail-Gitter in Master-Detail-GridView?
Ich habe ein problem immer auf die ausgewählten Zeilen Werte der detail-raster. Ich habe master-detail-raster in einem popup-Steuerelement, und es funktioniert gut. Ich habe auch aktiviert das aktivieren der Auswahl zu haben, die Checkboxen aber wenn ich versuche zu laufen GetSelectedFieldValues auf ClientSideEvents einer Taste, es gibt immer "0". Was mache ich falsch, ich konnte ihn nicht finden?
Hier ist der detail-grid:
AutoGenerateColumns="False"
CssFilePath="~/App_Themes/Aqua/{0}/styles.css"
CssPostfix="Aqua" OnBeforePerformDataSelect="gv_ParameterTempD_BeforePerformDataSelect"
ClientInstanceName="gvC_ParameterTempD">
<dxwgv:GridViewCommandColumn
ShowSelectCheckbox="True"
VisibleIndex="0"></dxwgv:GridViewCommandColumn> <dxwgv:GridViewDataTextColumn
Caption="Detay Kodu"
FieldName="PrmDetailCode"VisibleIndex="0"> </dxwgv:GridViewDataTextColumn> <dxwgv:GridViewDataTextColumn
Caption="Seçim Adı"
FieldName="PrmDetailName"VisibleIndex="2"> </dxwgv:GridViewDataTextColumn> <dxwgv:GridViewDataTextColumn
Caption="Seçim Adı(Grup)"
FieldName="PrmDetailNameG"
VisibleIndex="3">
</dxwgv:GridViewDataTextColumn> <dxwgv:GridViewDataTextColumn
Caption="Seçim Adı(Stok)"
FieldName="PrmDetailNameS"
VisibleIndex="4">
</dxwgv:GridViewDataTextColumn> <dxwgv:GridViewDataTextColumn
Caption="Grup Seçimi Yapan"
FieldName="PrmGroupSelector"
VisibleIndex="5">
</dxwgv:GridViewDataTextColumn> <dxwgv:GridViewDataTextColumn
Caption="Stok Seçimi Yapan"
FieldName="PrmStokSelector"
VisibleIndex="6">
</dxwgv:GridViewDataTextColumn> </Columns>
- Und das ist der Knopf:
<ClientSideEvents Click="function(s,e) { pcc_Question.Hide(); gvC_ParameterTempD.GetSelectedFieldValues('PrmDetailName;PrmDetailNameG;PrmDetailNameS',ShowCellValue); }" /> </dxe:ASPxButton>
- und dies ist die jsscript:
Funktion ShowCellValue(Werte) {
var value = condition.GetText(); alert(values.length); //here it returns "0" if(value != "") { var newValue = ' ' + value + values + ' = '; condition.SetText(newValue); } else { for(var i = 0; i < values.length; i ++) { value += values[i]; } condition.SetText(value); } }
Ich weiß nicht, was ich falsch mache,
Danke für die Hilfe
InformationsquelleAutor mehmetserif | 2010-07-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bin ich richtig in meiner Annahme, dass der Knopf sich im gleichen DetailRowTemplate container? Jedenfalls ist es erforderlich, um die korrekte Instanz von der detail-GridView-Objekt. Um dies zu tun, legen Sie das raster ClientInstanceName-Eigenschaft, um einen dynamischen Wert handeln. Dies sollte Ihnen ermöglichen, den Zugriff auf die richtige raster-Instanz und abrufen ausgewählter Zeile Werte. Ein Beispiel-code ist verfügbar unter:
http://www.devexpress.com/Support/Center/ViewIssue.aspx?issueid=Q90007
Wenn dem so ist, kann es viele detail-grids. Wie entscheiden Sie, welche grid-Werte geholt werden sollen?
Es ist nur ein detail, raster, und die Taste ist außerhalb von allen Netzen, es wird in eine html-Tabelle. Spesific ClientInstanceName ist nicht genug?
Hmm, ich denke, dass ich nicht ganz verstehen. Verwenden Sie zwei Netze getrennt? Oder haben Sie ein detail, raster, wohnhaft in der DetailRowTemplate container des master-Gitters, wie gezeigt in DevExpress demos? Wenn letzteres der Fall ist, die Anzahl der detail-grids im moment ist gleich der Anzahl der sichtbaren erweiterten master-Zeilen. Deshalb habe ich Ihnen vorgeschlagen, den Ansatz mit einer dynamischen ClientInstanceName.
Nein, ich glaube nicht, verwenden Sie Sie separat, detail, raster in DetailRowTemplate aber was ich wissen möchte ist, ist es wichtig, dass Sie die Taste innerhalb von DetailRowTemplate?Denn wenn es außerhalb der DetailRowTemplate " - Container.VisibleIndex" funktioniert nicht. Auch in meinem Fall gibt es nur einen grid-master-und detail-raster.
InformationsquelleAutor DevExpress Team
Ich bin Einstellung der Datenquelle zur Laufzeit, aber ich glaube nicht, rufen DataBind-Methode, denn es macht BeforePerformDataSelect der Detail-Raster ausführen, mehr als eine.
Diesen code stellen Sie den master-raster-Datenquelle und binden Sie es:
Und dieser code wird für die Einstellung der datasource von dem detail-grid:
InformationsquelleAutor mehmetserif
Sehe ich, dass Sie das master-grid-DataSource in der CustomCallback event-handler. Versuchen Sie, den cache der masterKey Wert in einer Session-variable und setzen Sie das raster DataSource-nicht nur in der CustomCallback event-handler, sondern auch in der Page_Init-Methode:
Funktioniert diese Hilfe?
Der Wert aus der master-raster gespeichert werden können in eine Session-variable. Bei der nächsten Anfrage wird bearbeitet, Sie werden in der Lage sein, um es zu Holen aus der Sitzung und füllen Sie das raster mit Daten basierend auf diesem parameter. Ich habe einen code vor, die zeigen, wie dies getan werden kann. Bitte versuchen Sie, dieses Vorgehen, sollte es funktionieren.
Dieser code lädt das Gitter bei Seite zu laden. Aber master-detail-raster nicht zeigen, bis auf das laden der Seite. Also ich kann speichern Sie den Wert in eine Session variable, aber keine Hilfe für mich. Alles was ich tun möchte, ist, dass im Feld Wert der ausgewählten Zeile. Aber ich bekomme immer eine leere variable "GetSelectedFieldValues" scheint nicht zu funktionieren in meinem Fall.
Ich fühle mich wie ich nicht ganz verstehen, wie das Netz funktioniert in Ihrer Anwendung. Beschreiben Sie bitte Ihre Aufgabe im Detail? Ich werde versuchen, um das problem zu reproduzieren auf meinem Rechner und lassen Sie Sie wissen, die Lösung.
Ok, es gibt ein raster auf einer Seite geladen mit Daten und, wenn Sie doppelt auf eine Zeile klicken, PopupControl zeigt. Es gibt eine Master-Detail-raster auf, dass PopupControl, Belastungen durch den übergebenen Wert aus dem raster, die auf die Seite. Was ich tun möchte, ist, dass in der detail-grid-Benutzer markieren Sie die Zeile und klicken Sie auf zur Liste hinzufügen. So alles funktioniert wirklich gut, bis "zur Liste Hinzufügen" der Fall. Ich kann nicht das Feld Werte einer ausgewählten Zeile in der detail-raster. Vielleicht ist es nicht eine verwirrende Aufgabe sein, aber ich konnte das nicht wirklich tun. Vielen Dank für Ihre Hilfe.
InformationsquelleAutor DevExpress Team
Habe ich einen Beispiel-Projekt, basierend auf Ihrer Beschreibung, und es funktioniert gut. Es ist als download verfügbar:
http://www.devexpress.com/Support/Center/ViewIssue.aspx?issueid=Q220495
Sollten Sie die ProjectConverter-tool (Start-->Developer Express v2009 vol 2-->Komponenten - >Tools) Versand innerhalb der Suite ein upgrade für mein Projekt zu Ihrem DXperience-version. Als für die .NET Framework 3.5. VS2008 öffnen lassen soll mein Projekt, und aktualisieren Sie es.
Deine Lösung funktioniert einwandfrei, aber wenn ich versuche es zu konvertieren, um mein Projekt bekam ich diese Fehlermeldung : "Ein Primärschlüssel-Feld über die angegebene KeyFieldName Eigenschaft ist, die nicht in der zugrunde liegenden Datenquelle.". Ist es, weil ich mit Collection laden Datenquelle? Oder gibt es andere Gründe? Danke.
InformationsquelleAutor DevExpress Team