Ich bin neu in ASP.NET, aber nicht in der Programmierung. Ich migriere unsere aktuelle Seite von PHP/MySQL nach ASP.NET (3.5)/SqlServer. Ich lauerte hier seit dem Start der Seite, also bin ich zuversichtlich, dass einer (oder mehrere) von Ihnen mir helfen können. Hier ist das Szenario:ASP.NET und ein Eins-zu-viele-zu-viele-Szenario
Dies ist eine Trainingsabteilung Website und die Abteilung. hat einen Kurskatalog in der Tabelle course
gespeichert. Jeder Kurs kann viele vorausgesetzte Kurse haben. Zum Beispiel sind A und B Voraussetzungen für C. Ich würde dies normalerweise entweder als durch Kommas getrennte Spalte in course
oder in einer separaten Tabelle course_prereq
oder course_course
als rekursive Beziehung speichern. Diesen Teil kann ich machen.
Die Geschäftsregeln erfordern jedoch, dass jeder Kurs mehrere Sätze von Voraussetzungen haben kann. Zum Beispiel erfordert N
erfordert A
, B
und C
oder N
erfordert X
und Y
. Hier stecke ich fest.
Zuvor ich diese Informationen in einer Spalte für Zeile gespeichert N
als A,B,C|X,Y
, analysiert die IDs in eine PHP 2D-Array, eine zweite Abfrage für alle Zeilen, deren ID vorgelegt war in diesem Array, verwendet dann PHP diejenigen zu trennen, Zeilen in ihre jeweiligen Gruppen. Sobald all diese Verarbeitung durchgeführt wird, werden die Gruppen von Voraussetzungen als separate Tabellen auf der Webseite angezeigt werden, etwa so:
| A | A's information goes here |
| B | B's information goes here |
| C | C's information goes here |
- - - - - - - OR - - - - - - - -
| X | X's information goes here |
| Y | Y's information goes here |
Wie würde ich dies mit ASP.NET erreichen?
Ich mag das Datenbankmodell. Nun, wie würde ich es in der ASP.NET-Seite angezeigt bekommen, so dass jeder 'prereq_set' eine eigene Gridview ist? Kann ein Repeater die zurückgegebenen Zeilen gruppieren oder muss ich dafür ein benutzerdefiniertes Steuerelement erstellen? – dneaster3
Sie können eine Gridview und sqldatasource in einen Repeater einfügen, aber das würde bedeuten, dass mehrere Anfragen an die Datenbank gesendet werden müssen. Vielleicht möchten Sie stattdessen einen Repeater mit benutzerdefiniertem HTML erstellen - es gibt viele verschiedene Möglichkeiten, wie Sie damit umgehen können. –