使用服务器过滤在 kendo 多选中预选值
Preselect value in kendo multiselect with server filtering
我有一个 kendo multiselect,serverFiltering 设置为 true。
$("#ddlAnalysisTeamMember").kendoMultiSelect(
{
autoBind: false,
minLength: 3,
//placeholder: 'User Name',
dataTextField: 'Text',
dataValueField: 'ID',
filter: 'contains',
delay: 200,
dataSource: {
serverFiltering: true,
transport: {
read: {
url: _VirDir("GetUsernameMultiAutoComplete", "WidgetsLoad"),
dataType: 'json'
}
}
}
}
);
我需要的
我已经在对象中保存了一些数据 select。我想在这个 multiselect 中设置这个值,比如点击一个按钮。
这是我保存 selected 项目的格式。
searchItem.TeamMember = "[{"ID":572053,"Text":"Account, Test"},{"ID":830620,"Text":"07test, Test"}]"
到目前为止我尝试了什么?
我尝试像这样
将值设置为 multiselect
$("#ddlAnalysisTeamMember").data("kendoMultiSelect").value($.parseJSON(searchItem.TeamMember));
但它没有设置值。
然后我尝试像这样设置数据源。
$("#ddlAnalysisTeamMember").data("kendoMultiSelect").setDataSource($.parseJSON(searchItem.TeamMember));
这在 multiselect 中设置了值,但自动建议不起作用。当我们打字时,没有搜索在 multi select.
中发生
还有什么我想念的吗?我必须以任何其他格式保存它吗?还有哪些其他方法可以通过服务器过滤将值设置为 multiselect?
我终于找到了适合我的东西。
searchItem.TeamMember = "[{"ID":572053,"Text":"Account, Test"},{"ID":830620,"Text":"07test, Test"}]"
LoadMultiselectData($("#ddlAnalysisTeamMember").data("kendoMultiSelect"), searchItem.TeamMember);
LoadMultiselectData = function (kendoMultiSelect, data) {
if (data != null) {
var jsonData = $.parseJSON(data);
if (jsonData.length > 0) {
var dataIDs = $.map(jsonData, function (n, i) {
return n.ID;
});
kendoMultiSelect.dataSource.data(jsonData);
kendoMultiSelect.value(dataIDs);
}
}
else {
kendoMultiSelect.dataSource.data([]);
kendoMultiSelect.value([]);
}
}
这解决了我的问题。有没有更好的方法来改善这个?
我有一个 kendo multiselect,serverFiltering 设置为 true。
$("#ddlAnalysisTeamMember").kendoMultiSelect(
{
autoBind: false,
minLength: 3,
//placeholder: 'User Name',
dataTextField: 'Text',
dataValueField: 'ID',
filter: 'contains',
delay: 200,
dataSource: {
serverFiltering: true,
transport: {
read: {
url: _VirDir("GetUsernameMultiAutoComplete", "WidgetsLoad"),
dataType: 'json'
}
}
}
}
);
我需要的
我已经在对象中保存了一些数据 select。我想在这个 multiselect 中设置这个值,比如点击一个按钮。
这是我保存 selected 项目的格式。
searchItem.TeamMember = "[{"ID":572053,"Text":"Account, Test"},{"ID":830620,"Text":"07test, Test"}]"
到目前为止我尝试了什么? 我尝试像这样
将值设置为 multiselect$("#ddlAnalysisTeamMember").data("kendoMultiSelect").value($.parseJSON(searchItem.TeamMember));
但它没有设置值。 然后我尝试像这样设置数据源。
$("#ddlAnalysisTeamMember").data("kendoMultiSelect").setDataSource($.parseJSON(searchItem.TeamMember));
这在 multiselect 中设置了值,但自动建议不起作用。当我们打字时,没有搜索在 multi select.
中发生还有什么我想念的吗?我必须以任何其他格式保存它吗?还有哪些其他方法可以通过服务器过滤将值设置为 multiselect?
我终于找到了适合我的东西。
searchItem.TeamMember = "[{"ID":572053,"Text":"Account, Test"},{"ID":830620,"Text":"07test, Test"}]"
LoadMultiselectData($("#ddlAnalysisTeamMember").data("kendoMultiSelect"), searchItem.TeamMember);
LoadMultiselectData = function (kendoMultiSelect, data) {
if (data != null) {
var jsonData = $.parseJSON(data);
if (jsonData.length > 0) {
var dataIDs = $.map(jsonData, function (n, i) {
return n.ID;
});
kendoMultiSelect.dataSource.data(jsonData);
kendoMultiSelect.value(dataIDs);
}
}
else {
kendoMultiSelect.dataSource.data([]);
kendoMultiSelect.value([]);
}
}
这解决了我的问题。有没有更好的方法来改善这个?