локальная виртуализация ComboBox кендо - PullRequest
0 голосов
/ 03 мая 2018

Я хочу использовать виртуализацию на локальных данных с объектом кендо ComboBox .

Я пробовал различными способами, но отображается только текущая страница (первые 40 элементов)

Я использовал структуру кода, максимально похожую на туториал по виртуализации кендо.

Я также попытался написать их, используя поле данных в Dasource и отключив ServerPaging. Но это не работает так же!

Мой HTML

<div class="col-xs-11 col-xs-offset-1">
                <input kendo-combo-box="EndProdChangeDialogCtrl.comboMaterialTool1" style="width:100%;"
                       ng-disabled="EndProdChangeDialogCtrl.disabledTool1"
                       k-filter="'contains'"
                       k-data-text-field="'Description'"
                       k-data-value-field="'ToolCode'"
                       k-value-primitive="true"
                       k-height="520"
                       k-data-source="EndProdChangeDialogCtrl.kk"
                       k-ng-model="EndProdChangeDialogCtrl.SelectedObject.ToolCode1"
                       k-on-change="EndProdChangeDialogCtrl.ChangeTool(EndProdChangeDialogCtrl.isLinkedTool1,EndProdChangeDialogCtrl.positionTool1,EndProdChangeDialogCtrl.SelectedObject.ToolCode1)"
 ng-class="{'required-tool':(EndProdChangeDialogCtrl.requiredTool1 ==            true &&   (EndProdChangeDialogCtrl.SelectedObject.ToolCode1==''||EndProdChangeDialogCtrl.SelectedObject.ToolCode1==null)),
                                   'required-tool-ok':(EndProdChangeDialogCtrl.requiredTool1 == true && (EndProdChangeDialogCtrl.SelectedObject.ToolCode1!='' && EndProdChangeDialogCtrl.SelectedObject.ToolCode1!=null)) }" />

                                   </div>

файл TS

  this.tools1List = t1.SuitableTools; //copy array for safe
                    var suits = new Array();
                    suits = suits.concat(t1.SuitableTools);


  this.comboMaterialTool1.setOptions(<kendo.ui.ComboBoxOptions>{

                        virtual: //<kendo.ui.ComboBoxVirtual>
                        {
                            itemHeight: 52,
                            valueMapper: function (options) {
                                var tool = Enumerable.from(suits).firstOrDefault(i => i.ToolCode == options.value);
                                var index = suits.indexOf(tool);
                                options.success(index);
                            }
                        },

                    });



                    this.kk = new kendo.data.DataSource({
                        schema: {
                            model: {

                                fields: {
                                    Description: { type: "string" },
                                    ToolCode: { type: "string" },
                                    IsAvailable: { type: "boolean" },
                                    IsMountedOnThisMachine: { type: "boolean" },
                                    TstCode: { type: "number" }
                                }
                            },
                            total: function (response) {
                                response.total = suits.length;
                                return response.total;
                            }
                        },
                        transport: {
                            read: function (options) {
                                var pagevalue = suits.slice(options.data.page * options.data.pageSize, options.data.page * options.data.pageSize + options.data.take);
                                options.success(pagevalue);
                                //     options.success(suits);
                            },
                        },
                        pageSize: 40,
                        serverPaging: true,
                      //  type: "odata" show nothing with odata type
                     });

1 Ответ

0 голосов
/ 07 мая 2018

я нахожу ответ. если вам нужна только установка по умолчанию post k-virtual = "true" на html-странице. ИЛИ

https://dojo.telerik.com/IXANaNAm/4

я нашел солутон, добавив поддельный маппер, который возвращает [].

Очевидно, что comboBox.value () должен быть с набором модели k-ng-model

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...