我正在使用Kendo UI将数据源绑定到Kendo Grid。我试图找到在不绑定到数据源的网格中创建列的最佳方法。
目前,我正在数据源中创建一个字段,并使用一些javascript和jQuery在从远程端点读取数据后设置该列的值。
数据源:
schema: {
model: {
fields: {
blah: {},
empty_column: {}
}
}
}
网格:
columns: {
field: "empty_column",
width: 100,
title: "Empty"
}
使用Javascript:
datasource.data[item].set("empty_column", computed_value);
为简洁起见,编辑了所有代码,一切正常。
我的问题:有没有办法为这个没有连接到远程端点的新空列设置defaultValue? 当我设置:
empty_column: {defaultValue: "None"}
网格仍显示“未定义”,我认为因为它在读取操作中没有收到该字段的任何数据。有没有办法在网格中设置defaultValue?我没见过这个例子......
答案 0 :(得分:6)
defaultValue
在您创建记录时适用,而不是在将要显示时。
你可以这样做:
选项1:在schema.fields.fieldName
中使用parse
就是这样的。
model: {
fields: {
empty_column: {
type : "string",
defaultValue: "none",
parse : function (data) {
if (!data.empty_columns) {
data.empty_column = "none";
}
return data;
}
},
blah : { type: "number" }
}
},
选项2 :使用schema.parse
添加额外字段值。
schema: {
model: {
fields: {
empty_column: {type: "string", defaultValue: "none"},
blah : { type: "number" }
}
},
parse: function (response) {
$.each(response, function (idx, item) {
if (!item.empty_column) {
item.empty_column = "none";
}
});
return response;
}
}
当然,(对于这两个选项)如果您确实知道empty_column
中没有先前的值,则可以保存测试条件并仅保留分配。