Ich habe diese Tabellen Pages
, PageVersions
und ElementsOnPageVersions
.
Ich möchte dies auf einer Seite auf einmal zeigen, in einer zusammenklappbaren Art von Ansicht.
So:
Seite 1
Seite 2
Seite 3
Seite 4
Ich bin unsicher, was der beste Weg ist, um die Daten abzurufen und sie im Layout des kollabierten Layouts anzuzeigen.
Ich würde so etwas tun:
So würde ich es in diesem Moment tun. Aber es scheint zu schwer und viel zu wiederholen.
Was wäre der beste Weg, dies zu tun?
Ich würde darüber nachdenken, Ihre drei verschiedenen Elemente in eine einzige selbstverweisende Liste zu projizieren. Jedes Element benötigt eine ID, eine Beschreibung und eine ParentId. Ich würde ein Betrachtungsmodell für diesen Zweck machen.
%Vor%Damit können Sie entweder asp: TreeView in Webforms oder eine andere Art von jQuery tree / treeview verwenden, wenn Sie MVC verwenden.
Ich habe tatsächlich etwas gebaut, das etwas sehr Ähnliches macht. Ich kann Ihnen die HTML-Quelle zu meinen geben, aber ich würde den .NET-Code ändern müssen, um firmenspezifische, proprietäre Informationen zu entfernen, bevor Sie diese öffentlich veröffentlichen (plus in C # konvertieren).
leider für mich, um mir zu ändern, um Ihre Bedürfnisse, es wäre fast bis zu einem Monat, bevor ich in der Lage wäre, um es zu erreichen (aufgrund einer anstrengenden Woche, bevor wir einen 2-wöchigen Urlaub). Aber Sie können sich meinen HTML-Code ansehen und sehen, was Sie daraus wiederverwenden können. Von dem, was ich von Ihrer Anfrage verstehe, würden Sie ungefähr die Hälfte meines JavaScript und seiner Funktionalität scratchen. aber wenn ich in deinen Schuhen wäre, würde ich diesen Code schätzen, um als Starter zu verwenden und zu verschrotten, was ich nicht wollte und vielleicht etwas hinzufüge. Oder du denkst einfach, dass mein Code Müll ist und benutze ihn überhaupt nicht. ; P
Also hier ist mein HTML & amp; JavaScript, damit Sie damit arbeiten können. Es behandelt das Kollabieren und Expandieren von Knoten, die ul und ol Listen verwenden.
%Vor%Ich habe auch bemerkt, dass mein Projekt ein WebControl für IE verwendet hat, das so weit zurück wie WinXP funktionieren musste. also war ich in was ich verwenden könnte, da es für IE 7 arbeiten musste begrenzt, aber das schöne ist, es funktioniert für den Weg zurück zu WinXP neueste Version von IE. Es ist mir auch wichtig, standardkonformen Code zu verwenden. Meines Wissens funktioniert mein JavaScript auch für alle standardkonformen Browser. Ich habe es in den neuesten Versionen von Chrome und FF und IE 10, IE 8 und IE 7 getestet.
Es gibt immer noch ein gutes Stück Code, das benötigt wird, um die Daten in eine HTML-Seite zu generieren, aber dies kann die Hälfte Ihrer Anfrage lösen.
In meinem .NET-Code musste ich diese JavaScript- und HTML-Listen erstellen, die ich in ein paar Wochen geben kann.
Sie können Dictionary-Objekte verwenden, um hierarchische Daten zu füllen. Dieses Codebeispiel könnte hilfreich sein:
%Vor% Ich habe DataTable
in diesem Beispielcode verwendet, aber Sie können dasselbe mit SqlDataReader
verwenden.
Um HTML zu erstellen, können Sie Folgendes tun:
%Vor%In diesem Prozess können Sie auch CSS-Klassen, IDs oder einfaches JavaScript anwenden, um ein Reduzierungs- / Erweiterungsverhalten hinzuzufügen.
Bitte beachten Sie, dass ich die Leistung dieses Codes nicht mit anderen Ansätzen verglichen habe, daher bin ich mir da nicht so sicher, aber es dauerte 8ms in einem Test auf einer durchschnittlichen Maschine, 8000 Datensätze zu verarbeiten.