Dojo DataGrid:不对列中的图像进行排序

Dojo DataGrid: Doesnot sort images in a column

本文关键字:图像 排序 DataGrid Dojo      更新时间:2023-09-26

我已经为包含图像的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();

下面是一个可以解决你的问题的stackoverflow答案:

如何在格式化器访问其他行内容时正确排序dojo数据网格单元格

我终于找到bug了。而不是数据存储,我必须使用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; 
    }
       }