javascript - Kendo Grid ,根据条件在详细网格中显示不同的模板

标签 javascript json kendo-ui kendo-grid kendo-datasource

我正在使用剑道网格,它工作正常。我需要检查网格的每一行,如果它包含特定值,则使用一个模板绑定(bind)数据,否则模板将有所不同。这可能吗 ?这是我的代码

function detailInit(e) {
        var isCreateGrid = true;
        var masterRowId = e.data.uid;
        var data = [];
        $.ajax({
            type: "GET",
            url: 'https://www.domain.com/details?&transactionId=' + e.data.TransactionId,
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            headers: { 'ccode': compCode },
            cache: false,
            async: false,
            success: function (result) {
                var jsonResult = JSON.parse(result);
                for (var i = 0; i < jsonResult.length; i++) {
                    if (jsonResult[i]["OldValue"] == null || jsonResult[i]["OldValue"] == '')
                        isCreateGrid = true;
                    else {
                        isCreateGrid = false;
                        break;
                    }
                }
                if (isCreateGrid) {
                    for (var i = 0; i < jsonResult.length; i++) {
                        data.push({ FieldUpdated: jsonResult[i]["ChangeColumns"], Value: jsonResult[i]["NewValue"] });
                    }
                } else {
                    for (var i = 0; i < jsonResult.length; i++) {
                        data.push({ FieldUpdated: jsonResult[i]["ChangeColumns"], Was: jsonResult[i]["OldValue"], Now: jsonResult[i]["NewValue"] });
                    }
                }
            }
        });
        var dataSource = new kendo.data.DataSource({ data: data });
        if (data.length == 0) {
            var grid = $("#logs").data("kendoGrid");
            grid.collapseRow("[data-uid='" + masterRowId + "']");
            grid.dataSource.read();
        } else {
            if (isCreateGrid) {
                $("<div/>").appendTo(e.detailCell).kendoGrid({
                    dataSource: dataSource,
                    filter: { field: e.data.Log, operator: "contains", value: 'has created' },
                    columns:
                        [{ field: "FieldUpdated", title: "Field Updated", width: "50px" },
                        { field: "Value", title: "Value", width: "50px" }]
                });
            } else {
                $("<div/>").appendTo(e.detailCell).kendoGrid({
                    dataSource: dataSource,
                    filter: { field: e.data.Log, operator: "contains", value: 'has created' },
                    columns:
                        [{ field: "FieldUpdated", title: "Field Updated", width: "50px" },
                        { field: "Was", title: "Was", width: "50px" },
                        { field: "Now", title: "Now", width: "50px" }]
                });

            }
        }
    }

但是这个 isCreateGrid 条件似乎没有用,因为如果他发现任何 isCreateGrid 标准为 false 的行,那么所有行都将具有针对 false 标准的模板。

最佳答案

是的,你可以。请引用下面的代码。

  $(gridId).kendoGrid({
    dataSource: {
        data: datasource
    },
    scrollable: true,
    sortable: true,
    resizable: true,
    columns: [
     { field: "MetricName", title: "Metric", width: "130px" },
     { field: "OnTrack", title: "On Track", template:'#:changeTemplate(OnTrack)#', width: "130px", attributes: { style: "text-align: center !important;" } },
     { field: "CurrentAmount", title: "Current", template: '$ #:parseFloat(CurrentAmount).toFixed(2)#', width: "130px" },
     { field: "RequiredAmount", title: "Required", template: '$ #:parseFloat(RequiredAmount).toFixed(2)#', width: "130px" }
    ]
});

function changeTemplate(value)
{
   Conditions depending on Your Business Logic
if ()
    return "HTML Here";
else
    return "HTML Here";
}

关于javascript - Kendo Grid ,根据条件在详细网格中显示不同的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28403290/

相关文章:

mysql - Spring data JPA中将java bean的List<Long>转换为mysql的json

asp.net-mvc - 获取剑道网格编辑器模板中的属性值

jQuery(...).kendoDatePicker 不是函数

JavaScript:避免对象构造函数中的 'this' 被事件覆盖?

javascript - 将引用设置为其他内容后保留 Javascript 引用

javascript - 在javascript中对多维数组进行排序

javascript - 使用 AngularJs 将 JSON 数组值解析为文本字符串

javascript - 将参数分配给具有相同名称的变量如何在 javascript 中工作?

python - Pymongo/bson : Convert python. cursor.Cursor 对象到可序列化/JSON 对象

kendo-ui - 更改 Kendo UI Scheduler 中事件的宽度