Frage

Ich habe ein Szenario, in dem ich beispielsweise eine Liste von US-Bundesstaaten wiederholen und nach dem Namen jedes Bundesstaates eine Tabelle mit Städten und Stadtbevölkerungen anzeigen muss.Die Designanforderung schreibt vor, dass jede äußere Wiederholung der Name eines Staates gefolgt von einer Städtetabelle sein muss, und diese Anforderung kann derzeit nicht geändert werden.Gibt es Nachteile beim Verschachteln eines GridView innerhalb eines Repeaters und beim anschließenden Binden jedes wiederholten GridView während des Repeaters? ItemDataBound Ereignis?Welche alternativen Lösungen gibt es?

War es hilfreich?

Lösung 4

Die beste Lösung, die ich finden konnte, bestand darin, die GridView im Repeater zu verschachteln.Dann habe ich jede wiederholte GridView während des ItemDataBound-Ereignisses des Repeaters gebunden.Ich habe ihre ViewStates natürlich deaktiviert, da sie nicht erforderlich waren.

Andere Tipps

Wenn ich es wäre, würde ich die Frage umkehren und fragen, warum ich sollte Verwenden Sie eine GridView. Wenn Sie eine Reihe integrierter Funktionen wie Paginierung und Sortierung benötigen, ist GridView möglicherweise eine gute Lösung.Wenn Sie nur tabellarische Daten wünschen, würde ich es mir noch einmal überlegen.Warum?Da Sie mit GridView eine ganze Reihe von Dingen erhalten, die Sie nicht verwenden, wird Ihr ViewState möglicherweise riesig sein und die Leistung Ihrer Seite wird langsamer.

Ich bin kein Fanatiker, wenn es um GridView geht, aber ich verwende sie nur, wenn es einen verdammt guten Grund gibt.

In Ihrem obigen Szenario wäre es besser, eine GridView im Master-Detail-Stil zu verwenden, die Ihnen den Aufwand für all die GridView-Objekte erspart, die erstellt werden.

Es gibt verschiedene Implementierungen davon (Verwenden eines Dropdown-Menüs für den Master, Verwendung einer Modales Popup für Details, usw.), aber der Hauptpunkt ist, dass Implementierungen verfügbar sind.

Zumindest können Sie ViewState hoffentlich für die GridViews deaktivieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top