0

我的 JSON 数据如下:

"items": [
{
    "batch": "sectionA",
    "full": "N",
    "numStudents": 2,
    "students": [
        {
            "name": "John",
            "married": "Y"

        },
        {
            "name": "Mary",
            "married": "N"
        }
    ]
},
{
    "batch": "sectionB",
    "full": "Y",
    "numStudents": 3,
    "students": [
        {
            "name": "John",
            "married": "Y"

        },
        {
            "name": "Mary",
            "married": "N"
        },
        {
            "name": "Sam",
            "married": "N"
        }
    ]
}

]

我遍历这个 JSON 并创建一个 DataGrid,其中: item[].batch 是 Header 列。item[].students[].name 是列下的行。此 JSON 将生成一个包含 2 个标题列和 3 行的 DataGrid。第 1 列(“SectionA”)下面只有两个单元格。第 2 列(“SectionB”)下填充了 3 个单元格。

我可以毫无问题地在网格中显示它。但是我需要添加逻辑 if : item[].students[].married = "Y" 然后我必须在单元格中的学生姓名旁边显示一个小图像。

同样,如果 item[].full = "Y" 那么我必须以不同的颜色显示标题列。

有什么建议么 ?最近一直在咀嚼我的大脑

4

2 回答 2

0

看看这个线程:How to add button or images to dojo grid

在道场数据网格中存储图像

我猜它可以帮助解决你的问题。

问候

于 2013-07-31T07:02:31.443 回答
0

我通过更改用于网格的结构来处理 dojo 数据网格中的图像。类似于下面的片段。这也允许您将网格列的大小调整为您正在使用的图像文件的大小。

var marryflag;

(function() {
mygrid.list.structure = [    
{
   cells: [
              [
                {name: 'Married', width: '17%', field: "married",hidden: true,
                    formatter: function(inValue) {
                        marryflag = inValue;
                    } // end formatter function
                },
                {name: 'Name', width: '20px', field: "name",                        
                    formatter: function(inValue) {
                        this.customStyles.push("vertical-align:middle");
                        return "<img src=\"/url_path_to_image/" + inValue + "\" alt=\"" + inValue + "\" width=\"16px\" height=\"16px\" style=\"vertical-align: middle\" /> ";                           
                    }                       
                }
              ]
           ]
      }                                                                                                                                                                
];
})();
于 2013-08-01T00:43:22.430 回答