Groupings で SlickGrid を使用しており、各グループ内のデータを並べ替える必要がありますが、Grouping (グループ ヘッダー行) はデフォルトの順序のままにします。
並べ替えは、列データを並べ替えてから、データごとにグループ化ヘッダーを並べ替えているようです。
誰かがこれを行ったことがありますか、またはオプション/パラメーターが正しく設定されていませんか?
ありがとう
グループ化+ソートの例を次に示します。並べ替えたいときは、グループ化している列に対して並べ替えを行うことに注意してください。列によるグループ化でない限り、他の列と並べ替えることはできませんそれと)
<select id="slc_groupby" name="slc_groupby" onchange="groupByColumn(this.value)">
<option value="">...</option>
<option value="assy_number">Assy Number</option>
</select>
<span id="span_group_btn" style="position:absolute; display:none; margin-left:5px; margin-top:20px;">
<!-- Group sorting, I show this button only after a grouping column is chosen -->
<img src="/images/b_updownarrow2.gif" id="img_sorting" border="0" onclick="groupByColumn( $('#slc_groupby').val() )" />
</span>
ここにグループ化+ソート用のjavascript関数があります。ソートボタン(html ID = img_sortingの一番上のボタン)をクリックするたびに、groupByColumn()関数を介して再グループ化および再ソートの効果があることに注意してください(私がm onclick イベントを使用して)、非常に高速に発生するため、グループ化が再び行われることは実際にはわかりません...しかし、それがすべてのブラウザー (Chrome を含む) で動作するようにした方法です。
function groupByColumn(column) {
// sorting direction, if undefined just inverse the current direction of the global sortdir var (sortdir is defined as global variable in slickgrid)
sortdir = ((sortdir == 1) ? -1 : 1);
dataView1.groupBy(
column,
function (g) {
return g.value + " <span style='color:green'>(" + g.count + " items)</span>";
},
function (a, b) {
var a1 = a.value;
var b1 = b.value;
// string sorting
return sortdir * (a1 == b1 ? 0 : (a1 > b1 ? 1 : -1));
}
);
// display the button for group sorting
$('#span_group_btn').css("display", "inline");
}