0

イメージを含む dojo datagrid 列のコードを作成しました。

コード: formatter: function(cellValue, rowIndex){

    if(data.items[rowIndex].status == "COMPLETED"){
          return "<img src='app/img/dot_done.png' />"+ " " +cellValue; 
    }
        else if(data.items[rowIndex].status == "IN_PROGRESS"){
          return "<img src='app/img/dot_in_progress.png' />"+" " +cellValue; 
    }
       }

出力は次のとおりです: ソート前:

      (done.img) complete

      (block.img) block

       (done.img) complete

       (block.img) block

並べ替え後:

       (done.img) block

       (block.img) block

       (done.img) complete

       (block.img) complete

したがって、上記のコードでは、画像を並べ替えるのではなく、セルの値を並べ替えます。

この問題を解決するために私に提案してもらえますか?

前もって感謝します。

ここにコードを追加しています:

    var store = new ItemFileWriteStore({data: data}); 

var layout = [[

{'name': 'TaskName', 'field': 'task_name', 'width': '20%',styles: 'text-align: center;'},


{'name': 'Status', 'field': 'status', 'width': '15%', styles: 'text-align: center;',

      formatter: function(cellValue, rowIndex){

                if(data.items[rowIndex].status == "COMPLETED"){ 

                    return "<img src='app/img/dot_done.png' />"+ " " +cellValue; } 

                }}]]; 

        var grid = new DataGrid({

                 id: 'grid', store: store, structure: layout, 

             });

        grid.placeAt("newdiv");

        grid.startup();
4

2 に答える 2

1

これがあなたの問題を解決するはずのstackoverflowの答えです:

フォーマッタが他の行コンテンツにアクセスするときにdojoデータグリッドセルを正しく並べ替える方法

于 2013-03-20T06:59:27.630 に答える
0

やっと見つけたバグ。データストアの代わりに cellValue を使用して値を比較する必要があります。

 function(cellValue, rowIndex){

    if(cellValue == "COMPLETED"){
          return "<img src='app/img/dot_done.png' />"+ " " +cellValue; 
    }
        else if(cellValue == "IN_PROGRESS"){
          return "<img src='app/img/dot_in_progress.png' />"+" " +cellValue; 
    }
       }
于 2013-04-06T14:17:37.437 に答える