2009-03-03 4 views
0

私はグリッドビュー上の単一のデータ行の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); 
    }) 
}); 

あなたはどう思いますか?これは貧弱なデザインの決定ですか?私は実際にこの解決策の容易さに非常に満足しています。あなたの考えを提供してください。

答えて

0

これはクライアント側のコードです。ユーザーが読み込まれた後でgridviewを使用して再生しない限り、正常であるはずです。しかし、ポストバックで何かしたいのであれば、リファクタリングが必要かもしれません。

gridviewで何を達成しようとしていますか? Remmberを使用すると、行バインド・イベントにフックして、必要に応じて現在の行を変更できます。

+0

「グリッドで遊ぶ」とはどういう意味ですか? このスクリプトは、「fieldAttributesNextRow」クラスでマークされたセルを取り、それらを既存の行の下に新しく作成された行に移動します。純粋にレイアウトの問題です。 グリッド上でインラインで編集/保存するためにポストバックを使用しています。 – chief7

関連する問題