Telerik MVC Grid があり、選択したものを強制的にリストの一番上に表示させたいと考えています。グリッドに DetailedView を使用しているので、折りたたんだり展開したりできます。選択した行をリストの一番上に強制するにはどうすればよいですか?
私のJquery:
function unit_onDetailViewExpand(e) {
// Select the Grid
var grid = $(this).data('tGrid');
//Close all other rows
grid.$rows().not(e.masterRow).each(function (index, row) {
grid.collapseRow(row);
});
/* TODO: move row to the top, this hasn´t worked for me so far
grid.reorderColumn(0, grid.columnFromTitle("Name"));
$.telerik.trigger(grid.element, 'repaint');
*/
}
みんなありがとう:)
#### 編集済み ####
これは、行を選択するときに私が今やっていることです:
function onRowSelect(e) {
$(e.row).prependTo($(e.row).parent());
var grid = $('#RentableUnits').data("tGrid");
// get the first master table row
var tr = $("#RentableUnits tbody > .t-master-row:eq(0)"); // use .t-master-row to select only the master rows
// expand the row
grid.expandRow(tr);
}
現在、DetailedView のコンテンツが移動していないという問題に直面しています。行を選択すると、行が一番上に移動し、行が展開されますが、前の行のコンテンツはまだ展開されています。
私はドキュメントを見ていて、これがdetailRowと関係があることを発見しましたが、masterRowと一緒にそれを移動する方法がわかりません.
詳細ビューの内容を行と一緒に移動する方法について誰か考えがありますか?
#### 編集済み (再度) ####
これまでのところ、テーブルの行はリストの一番上に移動されますが、その特定の行が展開されるたびに、元の一番上の行のコンテンツ (2 番目の行のコンテンツ) を取得し続けます)。Firebug で見たところ、.t-master-row の 1 つが展開されるまで、テーブル内に .t-detail-row がないことがわかりました。選択した行と一緒に別のものを移動する必要がありますか?
(FirebugのHTMLを示す質問とともに画像もアップロードしました)
function onRowSelect(e) {
var grid = $('#RentableUnits').data("tGrid");
var selectedRow = $('#RentableUnits tbody>.t-state-selected');
selectedRow.prependTo(selectedRow.parent());
if (selectedRow.next().is('.t-detail-row')) {
selectedRow.next().prependTo(selectedRow.parent());
}
selectedRow.prependTo(selectedRow.parent());
// get the first master table row
var tr = $("#RentableUnits tbody > .t-master-row:eq(0)"); // use .t-master-row to select only the master rows
// expand the row
grid.expandRow(tr);
}
大変お世話になりました。もう 1 回バグを修正できますか? :)
# # #