Kendo 带有布尔值的网格过滤器模式行
Kendo grid filter mode row with boolean
我有一个 kendo 网格,其中的数据具有 boolean
类型。
我使用过滤模式 'row'.
我使用 combobox
作为过滤器:
filterable: {
cell: {
template: function (args) {
args.element.kendoComboBox({
valuePrimitive: true,
dataSource: [
{ text: "No", value: "false" },
{ text: "Yes", value: "true" },
{ text: "All", value: "all" }
],
dataTextField: "text",
dataValueField: "value"
});
},
operator: "eq",
showOperators: false
}
}
道场示例:http://dojo.telerik.com/@lgoubet/uGeYIXoG
我不想用
filterable: {
messages:
{
isTrue: "Oui",
isFalse: "Non"
}
}
我想使用复选框或单选按钮,因为它更漂亮
更合适。
你有样品吗?一个想法?
您可以对任何您想要的元素使用自定义过滤器。和元素的 onChange 事件触发过滤器:
这是一个例子:
$('#yourRadio').change(function (ev) {
var grid = $('#grid').data('kendoGrid');
var field = 'Locked';
var operator = 'contains';
var value = this.value;
grid.dataSource.filter({
field: field,
operator: operator,
value: value
});
});
您还可以使用 CSS 在网格的头部部分停用或删除过滤器。
th [role="listbox"] {
visibility: hidden;
}
thead {
visibility: hidden;
display: none;
}
Kendo 提供了一个自动布尔过滤器,你只需要通过在数据源 schema:
中指定它来告诉它 "locked" 是一个布尔值
$("#grid").kendoGrid({
dataSource: {
data: data,
schema: {
model: {
fields: {
locked: {
type: "boolean"
},
name: {}
}
}
}
}
...});
完整样本在这里:http://dojo.telerik.com/aGOvOYiT
现在该过滤器是否是您想要的(它是两个单选按钮)是一个用户体验问题,而不是 Kendo 问题。我建议不要选择一个复选框,因为不清楚未选中状态是指 "not filtered" 还是 "filtered by false"。您的组合框是一个很好的解决方案,因为它有 3 个清晰且不同的状态。
我有一个 kendo 网格,其中的数据具有 boolean
类型。
我使用过滤模式 'row'.
我使用 combobox
作为过滤器:
filterable: {
cell: {
template: function (args) {
args.element.kendoComboBox({
valuePrimitive: true,
dataSource: [
{ text: "No", value: "false" },
{ text: "Yes", value: "true" },
{ text: "All", value: "all" }
],
dataTextField: "text",
dataValueField: "value"
});
},
operator: "eq",
showOperators: false
}
}
道场示例:http://dojo.telerik.com/@lgoubet/uGeYIXoG
我不想用
filterable: {
messages:
{
isTrue: "Oui",
isFalse: "Non"
}
}
我想使用复选框或单选按钮,因为它更漂亮 更合适。
你有样品吗?一个想法?
您可以对任何您想要的元素使用自定义过滤器。和元素的 onChange 事件触发过滤器:
这是一个例子:
$('#yourRadio').change(function (ev) {
var grid = $('#grid').data('kendoGrid');
var field = 'Locked';
var operator = 'contains';
var value = this.value;
grid.dataSource.filter({
field: field,
operator: operator,
value: value
});
});
您还可以使用 CSS 在网格的头部部分停用或删除过滤器。
th [role="listbox"] {
visibility: hidden;
}
thead {
visibility: hidden;
display: none;
}
Kendo 提供了一个自动布尔过滤器,你只需要通过在数据源 schema:
中指定它来告诉它 "locked" 是一个布尔值$("#grid").kendoGrid({
dataSource: {
data: data,
schema: {
model: {
fields: {
locked: {
type: "boolean"
},
name: {}
}
}
}
}
...});
完整样本在这里:http://dojo.telerik.com/aGOvOYiT
现在该过滤器是否是您想要的(它是两个单选按钮)是一个用户体验问题,而不是 Kendo 问题。我建议不要选择一个复选框,因为不清楚未选中状态是指 "not filtered" 还是 "filtered by false"。您的组合框是一个很好的解决方案,因为它有 3 个清晰且不同的状态。