开发者问题收集

处理剑道网格中的空值

2016-06-07
14018

我有一个剑道网格,其中一列可以有空值。但是当有空值时,我看不到网格填充。我的代码在这里:

$(document).ready(function() {
    $("#grid").kendoGrid({
        dataSource: gridData,
        columns: [{
            field: "name",
            title: "Name"
        }, {
            field: "result",
            title: "Result",
            template: "# if (result == null) { #" +
                "<span data-content=' '></span> } #" +
                "# } else { #" +
                "<span data-content=\"#: result#\"> </span>"
        }]
    });
});

有人能帮我解决这个错误吗?

2个回答

我不确定您是否真的需要自己设置 data-content ...如果您只想设置一个空字符串而不是一个空值,那么您可以使用更简单的模板来完成:

$(document).ready(function() {
    $("#grid").kendoGrid({
        dataSource: gridData,
        columns: [{
            field: "name",
            title: "Name"
        }, {
            field: "result",
            title: "Result",
            template: "#= (result == null) ? ' ' : result #"
        }]
    });
});
The_Black_Smurf
2016-06-07

为了便于控制/可读,您可以这样做

$(document).ready(function() {
    $("#grid").kendoGrid({
        dataSource: gridData,
        columns: [{
            field: "name",
            title: "Name"
        }, {
            title: "Result",
            template: function (dataItem) {
                if (dataItem.result == null)
                    return 'Placeholder';
                else
                    return dataItem.result;
            }
        }]
    });
});

就个人而言,不喜欢 Kendo 插值“#”,当模板中有更多逻辑时,很难阅读,这可能会导致更多插值“#”。使代码不可读,因为起点和终点都使用了“#”。

ZHENG YIONG LAI
2019-05-02