2017-01-16 10 views
0

データソースにバインドされた列ヘッダー(2つのヘッダー)をグループ化した剣道グリッドがあります。私は、次のコードを使用して、正常に動作している単一のヘッダー行グリッドの列インデックスを取得しています。グループ化された列(マルチヘッダー)の特定の列のインデックスを取得する方法剣道グリッド

dataBound: function (e) { 
      var grid = e.sender; 
      var rows = grid.tbody.children(); 
      var dataItem = grid.dataItem(rows[0]); 
      var priColIndex = grid.wrapper.find(".k-grid-header [data-field=FromDemandQty]").index(); 
      var cell = row.children().eq(priColIndex); 

      if (dataItem.FromDemandQty < 0) 
       cell.addClass('stkShort'); 
      else 
       cell.addClass('stkExcess'); 
} 

しかし、私の剣道グリッドに2つのヘッダー行がある場合、これは機能しません。以下は私の剣道グリッドのスクリーンショットです。上記のコードは、新しいグループが開始されたときにインデックスをリセットしているイメージ内の余/短い列のインデックスを実際に取得しようとしたときにインデックスを1として返します(グループ名:リクエスタデータ、画像を参照してください)

enter image description here

+0

私はあなたが何を求めているのか理解しようとしています。行や列を取得しようとしていますか?取得している列と必要な列はどちらですか?彼らはまったくグループ化されていますか? – Keith

+0

@Keith、実際に私の剣道グリッドのいくつかの列はグループ化されています(タイトルヘッダーとマージされています)。いくつかの条件に基づいてその列のクラスを設定するには、 "Excess/Short"列のインデックスを取得する必要があります。添付の画像を参考にしてください。上記のコードを使用してインデックスとして1を返しますが、実際にはインデックスは6です。したがって、その列の実際のインデックスを取得するための助けを求めています。 –

答えて

0

最後に私は解決策を得ました。これは私の質問に直接インデックスを取るの

Insteedに言及したシナリオの両方で動作しますが、列のデータセットのインデックスを取る必要があり

既存のコード:

var priColIndex = grid.wrapper.find(".k-grid-header [data-field=FromDemandQty]").index(); 
     var cell = row.children().eq(priColIndex); 

     if (dataItem.FromDemandQty < 0) 
      cell.addClass('stkShort'); 
     else 
      cell.addClass('stkExcess'); 

は次のように変更する必要があります。

var fromDemCell = grid.wrapper.find(".k-grid-header [data-field=FromDemandQty]"); 
        if (fromDemCell.length > 0) { 
         var priColIndex = parseInt(fromDemCell[0].dataset.index); 
         var cell = row.children().eq(priColIndex); 
         if (dataItem.FromDemandQty < 0) { 
          cell.addClass('stkShort'); 
         } 
         else 
          cell.addClass('stkExcess'); 
        } 
関連する問題