我有一个JSON文件,我希望使用DescFatorAvaliacao
属性在jquery datatable mDataProp
列中显示。
但是,由于JSON中的父节点DesdobramentoList
,我遇到了一些困难。
如何将数据表列设置为DescFatorAvaliacao
?
JavaScript功能
function loadAvaliacaoPDI() {
var gridAvaliacaoPDI = $('#gridAvaliacaoPDI').DataTable({
language: {
url: "//cdn.datatables.net/plug-ins/1.10.7/i18n/Portuguese-Brasil.json"
},
"sAjaxDataProp": "",
destroy: true,
ajax: {
"url": 'Actions/GetAvaliacaoPDI.ashx',
"type": "POST"
},
"searching": false,
aoColumns: [
{ mDataProp: "DescFatorAvaliacao" }
]
});
}
$(function () {
loadAvaliacaoPDI();
});
JSON
[{
"DesdobramentoList": [{
"TipoAvaliador": 1,
"DescFatorAvaliacao": "Usamos os recursos da empresa de forma consciente e responsável."
},
{
"TipoAvaliador": 1,
"DescFatorAvaliacao": "Assumimos nossos atos independentemente de sucesso ou fracasso, não damos desculpas."
},
{
"TipoAvaliador": 1,
"DescFatorAvaliacao": "Agimos como se fôssemos sócios da empresa"
}]
}]
更新编辑@DSH提出的解决方案
"dataSrc": function (json) {
for (var i = 0, ien = json.length ; i < ien ; i++) {
for (var z = 0; z < json[i].DesdobramentoList.length; z++) {
var descricaoFator = json[i].DesdobramentoList[z].DescFatorAvaliacao;
json[i].DescFatorAvaliacao = descricaoFator;
}
}
return json;
}
答案 0 :(得分:2)
使用ajax.dataSrc
选项告诉DataTables数据位于DesdobramentoList
而不是data
。
var gridAvaliacaoPDI = $('#gridAvaliacaoPDI').DataTable({
language: {
url: "//cdn.datatables.net/plug-ins/1.10.7/i18n/Portuguese-Brasil.json"
},
destroy: true,
ajax: {
url: 'Actions/GetAvaliacaoPDI.ashx',
type: "POST",
dataSrc: "0.DescFatorAvaliacao"
},
searching: false,
columns: [
{ data: "DescFatorAvaliacao" }
]
});
PS。我认为你的意思是返回一个对象,而不是一个包含JSON中单个对象的列表。