8

列に数値と文字列(NA)の両方の値があるKendo-Gridを使用しています。それらを並べ替える方法はありますか?

4

4 に答える 4

8

カスタム比較関数を使用してそれらを並べ替えることができます。以下は、 「N/A」を先頭に表示するサンプル コードです。

$("#grid").kendoGrid({
  dataSource: [
    { price: 1 },
    { price: "N/A" },
    { price: 20 },
    { price: 2 }
  ],
  sortable: true,
  columns: [
    {
      field: "price",
      sortable: {
        compare: function(a, b) {
          var x = a.price;
          var y = b.price;

          if (x == 'N/A') {
            x = 0;
          }

          if (y == 'N/A') {
            y = 0;
          }

          return x - y;
        }
      }
    }
  ]
});

これがライブデモです: http://jsbin.com/urUXOCa/1/edit

于 2013-09-26T06:39:32.903 に答える
0

フィールド値を数値にします。次に、必要に応じて、表示時に文字列を追加します。

親切にこれを参照してください:数字の並べ替え(ドルの金額とパーセンテージ)が機能しない

于 2013-09-25T19:53:38.583 に答える
0

私の知る限り、フィールドに対して独自のソート関数を作成する方法はありません。私はhttp://sympletech.com/how-to-enable-case-insensitive-sorting-on-kendo-ui-grid/を見つけました.誰かがあなたが求めているようなものを実装しました(彼は大文字と小文字を区別しないソートを行っていました) )。

私はこれを一度しなければなりませんでした (ありがたいことに、編集不可能なグリッドでは、データを表示するだけでした)、テンプレートを使用してグリッドをだましました。dataBound になる前にデータを調べ、適切にソートされるデータを表す別のプロパティを追加し、元の列ではなくその列にグリッドをバインドしますが、元のデータ値を返すテンプレートを使用します。

jsbin http://jsbin.com/ETaZOSu/1/editを参照してください。

于 2013-09-25T19:55:02.043 に答える