【问题标题】:Kendo UI - MultiSelect replace dynamically created dataSource from external fileKendo UI - MultiSelect 从外部文件替换动态创建的数据源
【发布时间】:2016-01-19 11:00:35
【问题描述】:

如何替换外部 .js 文件中的 Kendo UI MultiSelect 数据源值...

PS:实际值来自index.html 文件,如下所示:

index.html

<select multiple="multiple" class="city_fields initi-select-218" id="test">
</select>

var data = [
     "New Jersey",
     "San Francisco",
     "Las Vegas",
     "Chicago",
     "Los Angeles",
     "New York"
];

jQuery(".city_fields").kendoMultiSelect({
  dataSource: data,
  filter: "contains",
});

我试图从 init.js(外部)文件中替换的值如下...

init.js

尝试了选项 1:

var newData = ["Delhi",  "Bangalore"];
jQuery(".initi-select-218").kendoMultiSelect({
    dataSource: newData,
    filter: "contains",
    placeholder: "Select",
});

尝试了选项 2:

var newData = ["Delhi", "Bangalore"];
$("#test").kendoMultiSelect({
    dataSource: newData,
    filter: "contains",
    placeholder: "Select",
}); 
$("#test").setDataSource(new kendo.data.DataSource({ data: newData }));

尝试了选项 3:

var newData = ["Delhi",  "Bangalore"];
var multiselect = $("#test").data("kendoMultiSelect");
multiselect.setDataSource(new kendo.data.DataSource({ data: newData }));

对于选项 2 和 3,我收到错误

Uncaught TypeError: $(...).setDataSource is not a function...

但是,它仍然从index.html 文件中获取值

【问题讨论】:

    标签: jquery kendo-ui kendo-dropdown kendo-multiselect


    【解决方案1】:

    这是因为你有 css 类的 jquery 选择器。 kendo multiselect 也将相同的类应用于包装器。

    <div class="k-widget k-multiselect k-header city_fields initi-select-218" unselectable="on" title="" style="">
        ...
        <select multiple="multiple" class="city_fields initi-select-218" data-role="multiselect" aria-disabled="false" aria-readonly="false" style="display: none;">
            ...
        </select>
    </div>
    

    改用id 属性:

    <select id="multiselect" multiple="multiple" class="city_fields initi-select-218"></select>
    <script>
        $("#multiselect").kendoMultiSelect({...});
        var multiselect = $("#multiselect").data("kendoMultiSelect");
        ...
    </script>
    

    更新工作示例:http://dojo.telerik.com/iHoDU/2

    【讨论】:

    • 谢谢@Gene R...但它仍然无法正常工作...相反我收到错误Uncaught TypeError: Cannot read property 'setDataSource' of undefined
    • 以下代码:&lt;select multiple="multiple" accesskey="w" class="input-medium city_fields initi-select-218" id="test"&gt;&lt;/select&gt; var newData = ["Delhi", "Bangalore"]; var multiselect = $("#test").data("kendoMultiSelect"); multiselect.setDataSource(new kendo.data.DataSource({ data: newData }));
    • @Reddy 你需要先初始化多选:$("#test").kendoMultiSelect({...});
    • 嗨Gene R...虽然没有运气,但再次尝试...我已经用尝试过的选项更新了问题...请帮助我:(
    • @Gene R...谢谢...但问题是:如果(数据和新数据)都来自同一个地方,它会很好用,而不是如果 newData 来自外部文件,则工作:(
    猜你喜欢
    • 2012-11-16
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多