如何为网格 header 中的 kendo 下拉过滤器设置默认值
How to set default value for kendo dropdown filter in grid's header
情况如下:我们有一个带有列的 kendo 网格,在一列中我们有一个用于过滤目的的 kendo 下拉列表。客户端基于 angularjs,服务器端基于 c#。那么,是否可以在不知道其 ID 的情况下为 kendo 下拉菜单设置默认值?我正在搜索第二天,但在 web/teletrik 文档中找不到任何内容。
代码
$scope.GridOptions =
{
pageable: { refresh: true, pageSizes: true },
columns: [
// other columns here
{
field: "RegistrationStatus", title: "Status", width: 13,
filterable: {
operators: {
string: {
eq: "Is equal to",
neq: "Is not equal to"
}
},
ui: function(element) {
element.kendoDropDownList({
dataSource: [
{ Name: "Registered", Value: "PassedInterview" },
{ Name: "Pending", Value: "PassedInterview" },
{ Name: "Rejected", Value: "Rejected" }
],
dataTextField: "Name",
dataValueField: "Value",
optionLabel: "--Select Status--"
defaultValue: "PassedInterview" // smth like this, is this possible? or achieve in any other methods instead of taking dropdown id, which I dont know because this is hided inside
});
}
}
}
],
sortable: true,
filterable: true,
selectable: 'row',
editable: 'inline'
};
我在初始化后设置了 value
:
element.data("kendoDropDownList").value("PassedInterview");
Demo. Note that you can also use select()
方法,如果你喜欢。
问题是,我不知道为什么,但是您不能在小部件创建后立即调用它,您必须使用 window.setTimeout()
。我知道,它很丑。但是在创建和显示过程之间的某个地方,您的函数有点 被忽略 并且如果直接调用则不起作用。这就是计时器的原因(尝试w/o并自行检查)。
我也尝试在创建参数中设置 value
和 index
,但是 none 起作用了(它们实际上应该起作用)。
情况如下:我们有一个带有列的 kendo 网格,在一列中我们有一个用于过滤目的的 kendo 下拉列表。客户端基于 angularjs,服务器端基于 c#。那么,是否可以在不知道其 ID 的情况下为 kendo 下拉菜单设置默认值?我正在搜索第二天,但在 web/teletrik 文档中找不到任何内容。
代码
$scope.GridOptions =
{
pageable: { refresh: true, pageSizes: true },
columns: [
// other columns here
{
field: "RegistrationStatus", title: "Status", width: 13,
filterable: {
operators: {
string: {
eq: "Is equal to",
neq: "Is not equal to"
}
},
ui: function(element) {
element.kendoDropDownList({
dataSource: [
{ Name: "Registered", Value: "PassedInterview" },
{ Name: "Pending", Value: "PassedInterview" },
{ Name: "Rejected", Value: "Rejected" }
],
dataTextField: "Name",
dataValueField: "Value",
optionLabel: "--Select Status--"
defaultValue: "PassedInterview" // smth like this, is this possible? or achieve in any other methods instead of taking dropdown id, which I dont know because this is hided inside
});
}
}
}
],
sortable: true,
filterable: true,
selectable: 'row',
editable: 'inline'
};
我在初始化后设置了 value
:
element.data("kendoDropDownList").value("PassedInterview");
Demo. Note that you can also use select()
方法,如果你喜欢。
问题是,我不知道为什么,但是您不能在小部件创建后立即调用它,您必须使用 window.setTimeout()
。我知道,它很丑。但是在创建和显示过程之间的某个地方,您的函数有点 被忽略 并且如果直接调用则不起作用。这就是计时器的原因(尝试w/o并自行检查)。
我也尝试在创建参数中设置 value
和 index
,但是 none 起作用了(它们实际上应该起作用)。