So hatte ich eine Feature-Anfrage, um Felder zu einer zweiten Tabellenzeile für eine einzelne Datenzeile in einem GridView hinzuzufügen. Zuerst habe ich versucht, die Funktionalität des GridViews zu erweitern, aber bald wurde mir klar, dass dies eine große Aufgabe sein würde und da ich diese Anfrage für ein größeres zukünftiges Feature halte, habe ich mich dagegen entschieden. Möchte auch in naher Zukunft zu MVC wechseln und das wäre Wegwerfcode.Erweiterte ASP.NET Gridview Layout
Also habe ich stattdessen ein kleines jquery-Skript erstellt, um die Zelle in die nächste Zeile der Tabelle zu verschieben.
$(document).ready(function() {
$(".fieldAttributesNextRow").each(function() {
var parent = $(this).parent();
var newRow = $("<tr></tr>");
newRow.attr("class", $(parent).attr("class"));
var headerRow = $(parent).parent().find(":first");
var cellCount = headerRow.children().length - headerRow.children().find(".hide").length;
newRow.append($(this).attr("colspan", cellCount));
$(parent).after(newRow);
})
});
Was halten Sie davon? Ist das eine schlechte Designentscheidung? Ich bin wirklich sehr zufrieden mit der Leichtigkeit dieser Lösung. Bitte geben Sie Ihre Gedanken an.
Was meinst du "spielen mit dem Gitter"? Dieses Skript nimmt Zellen, die mit der Klasse "fieldAttributesNextRow" markiert sind, und verschiebt sie in eine neu erstellte Zeile unter ihrer vorhandenen Zeile. Es ist ein reines Layout-Problem. Ich benutze Postbacks zu bearbeiten/speichern inline auf dem Gitter alles funktioniert gut. – chief7