【问题标题】:Preselect value in kendo multiselect with server filtering带有服务器过滤的剑道多选中的预选值
【发布时间】:2016-11-14 14:51:29
【问题描述】:

我有一个剑道多选,其中 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'
                    }
                }
            }
        }
    );

我需要什么

我已经将在此选择的一些数据保存在一个对象中。我想在这个多选中设置这个值,比如点击一个按钮。

这是我保存所选项目的格式。

searchItem.TeamMember = "[{"ID":572053,"Text":"Account, Test"},{"ID":830620,"Text":"07test, Test"}]"

到目前为止我尝试了什么? 我尝试像这样将值设置为多选

$("#ddlAnalysisTeamMember").data("kendoMultiSelect").value($.parseJSON(searchItem.TeamMember));

但它没有设置值。 然后我尝试像这样设置数据源。

 $("#ddlAnalysisTeamMember").data("kendoMultiSelect").setDataSource($.parseJSON(searchItem.TeamMember));

这会在多选中设置值,但自动建议不起作用。当我们输入时,多选中不会发生搜索。


还有什么我想念的吗?我必须以任何其他格式保存它吗?还有哪些其他方法可以通过服务器过滤为多选设置值?

【问题讨论】:

    标签: jquery kendo-ui kendo-multiselect


    【解决方案1】:

    我终于找到了适合我的东西。

    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([]);
        }
    }
    

    这解决了我的问题。有没有更好的方法来改善这一点?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多