0
votes

I have problem with KenfoUI grid. From server side I'm sending JSON data:

{
"data": [{
    "process": {
        "id": "myProcess2:1:1206",
            "description": null,
            "name": "My process 2",
            "version": 1
    },
        "id": 42066,
        "description": "unisono-rest-evenem",
        "type": {
        "id": 2,
            "translation": "Faktura sprzedażowa",
            "name": "salesInvoice"
    },
        "triger": {
        "id": 42048,
            "name": "Document recognized trigger",
            "code": "ocrEndTrigger",
            "type": "DOCUMENT_RECOGNIZED"
    }
}, {
    "process": {
        "id": "myProcess2:1:1206",
            "description": null,
            "name": "My process 2",
            "version": 1
    },
        "id": 42067,
        "description": "6756757",
        "type": {
        "id": 5,
            "translation": "Słownik stawek VAT",
            "name": "dictVatRates"
    },
        "triger": {
        "id": 42048,
            "name": "Document recognized trigger",
            "code": "ocrEndTrigger",
            "type": "DOCUMENT_RECOGNIZED"
    }
}, {
    "process": {
        "id": "myProcess2:1:1206",
            "description": null,
            "name": "My process 2",
            "version": 1
    },
        "id": 42068,
        "description": "56546546",
        "type": {
        "id": 1,
            "translation": "Faktura",
            "name": "invoice"
    },
        "triger": {
        "id": 42047,
            "name": "New document trigger",
            "code": "createDocument",
            "type": "CREATE_DOCUMENT"
    }
}, {
    "process": {
        "id": "myProcess2:1:1206",
            "description": null,
            "name": "My process 2",
            "version": 1
    },
        "id": 42069,
        "description": "swswsws",
        "type": {
        "id": 5,
            "translation": "Słownik stawek VAT",
            "name": "dictVatRates"
    },
        "triger": {
        "id": 42047,
            "name": "New document trigger",
            "code": "createDocument",
            "type": "CREATE_DOCUMENT"
    }
}],
    "total": 4
}

and I defined columns in gird like:

    columns: [{
    field: "process",
    title: "Nazwa procesu",
    editor: staticEditors.processEditor,
        "template": function (data) {
        if (data.process != null && data.process != undefined) {
            return "<span class='gridText' title='" + data.process.name + "'>" + data.process.name + "</span>"
        } else {
            return "<span></span>"
        }
    }
}, {
    field: "type",
    title: "Typ dokumentu",
    editor: $scope.typeEditor,
        "template": function (data) {
        if (data.type != null && data.type != undefined) {
            return "<span class='gridText' title='" + data.type.translation + "'>" + data.type.translation + "</span>"
        } else {
            return "<span></span>"
        }
    }
}, {
    field: "triger",
    title: "Wyzwalacz",
    editor: staticEditors.triggerEditor,
        "template": function (data) {
        if (data.triger != null && data.triger != undefined) {
            return "<span class='gridText' title='" + data.triger.name + "'>" + data.triger.name + "</span>"
        } else {
            return "<span></span>"
        }
    }
}, {
    field: "description",
    title: "Description",
        "template": function (data) {
        if (data.description != null && data.description != undefined) {
            return "<span class='gridText' title='" + data.description + "'>" + data.description + "</span>"
        } else {
            return "<span></span>"
        }
    }
}

There is a problem in template function because data object doesn't have all data. I noticed that has problem with nested data (field like type, trigger, process has null or string ("[object Object]") values.)

How can I solve this problem ?

2
Seems to work fine if I copy/paste your columns and data: dojo.telerik.com/EKuLi - CodingWithSpike

2 Answers

0
votes

I find out the problem. I defined schema.model.field as numer(string). When I removed that, everything work's fine.

-1
votes

Template is not string in column,

try like this,

{
    field: "triger",
    title: "Wyzwalacz",
    editor: staticEditors.triggerEditor,
    template: function (data) {
        if (data.triger != null && data.triger != undefined) {
            return "<span class='gridText' title='" + data.triger.name + "'>" + data.triger.name + "</span>"
    } else {
        return "<span></span>"
    }
}

Remove "template" and do this template i think that solved your problem.