私はグリッドビュー上の単一のデータ行の2番目のテーブルの行にフィールドを追加する機能要求があった。最初は、GridViewの機能を拡張することを検討しましたが、すぐにこれが大きな仕事になることを認識しました。この要求を考慮すると、より大きな将来の機能のためのシムがそれに対して決定しました。また、近い将来MVCに移行したいと考えています。これはコードを破棄することになります。高度なASP.NETのグリッドビューのレイアウト
代わりに、テーブルの次の行にセルを移動するための小さなjqueryスクリプトを作成しました。
$(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);
})
});
あなたはどう思いますか?これは貧弱なデザインの決定ですか?私は実際にこの解決策の容易さに非常に満足しています。あなたの考えを提供してください。
「グリッドで遊ぶ」とはどういう意味ですか? このスクリプトは、「fieldAttributesNextRow」クラスでマークされたセルを取り、それらを既存の行の下に新しく作成された行に移動します。純粋にレイアウトの問題です。 グリッド上でインラインで編集/保存するためにポストバックを使用しています。 – chief7