Du bist hier: Snippet-Verzeichnis » Microsoft .NET (154)
Sprache:

DataList rendert SeparatorTermplate falsch

Sprache: Deutsch
Programmiersprache: ASP.NET
Veröffentlicht von: Thomas
Letzte Änderung: 02.12.2007
Aufrufe: 1

Lizenz: Public Domain

Beschreibung

Das DataList-Control rendert (getestet in ASP.NET 2.0) das Separator-Template falsch. Und zwar falsch in dem Sinne, dass es schlicht "Umbrüche" ignoriert, wenn man als Layout table verwendet.

Beispiel:

Man möchte in einer Tabelle vier Spalten haben, getrennt durch eine Platzhalter-Spalte, die man via SeparatorTemplate definiert. Dazu sollte es genügen die nötigen Templates anzulegen und RepeatColumns auf 4 zu setzen. Im Ergebnis müssten jetzt also 7 Spalten gerendert werden - 4 Content-Spalten und 3 Platzhalter-Spalten:

Content | Content | Content | Content

Das DataList-Control rendert allerdings 8 Spalten - weil es den Umbruch nach dem 4. Item ignoriert.

Content | Content | Content | Content |

Beim Float-Layout wäre das in Ordnung, nicht aber beim Table-Layout. Behelfen kann man sich durch eine Methode, die das überflüssige Item einfach wieder entfernt:

Code

1 protected void RProducts_OnItemDataBound(object sender, DataListItemEventArgs e) 2 { 3 if (e.Item.ItemType == ListItemType.Separator) 4 { 5 if(((e.Item.ItemIndex +1) % 4) == 0) 6 e.Item.Controls.Clear(); 7 } 8 }

Noch kein Kommentar vorhanden

Dieses Snippet kommentieren

Name *  

E-Mail (wird nicht angezeigt) *    

Website  

Kommentar *  

Sicherheitscode Sicherheitscode *    

RSS