Reputation: 4740
I have a JSON file and I want display in a jquery datatable the DescFatorAvaliacao
column using the mDataProp
property.
But, I've had some difficulties with that, because of the parent node DesdobramentoList
in JSON.
What can I do to put the datatable column set to DescFatorAvaliacao
?
JavaScript Function
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"
}]
}]
UPDATE EDITING THE SOLUTION PROPOSED BY @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;
}
Upvotes: 0
Views: 274
Reputation: 12213
Use the ajax.dataSrc
option to tell DataTables the data is found in DesdobramentoList
instead of 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. I think you meant to return a single object, not a list containing a single object in your JSON.
Upvotes: 2