Добрый день!
Есть задача по реализации кнопки-меню с динамическим списком. Нужно создать кнопку по типу Actions или Print.
Я создала метод, который выбирает из списка нужные пункты и добавляет их как пункты меню:
attributes: { "ButtonMenu": {dataValueType: this.Terrasoft.DataValueType.COLLECTION}, }, methods: { init: function() { this.callParent(arguments); this.initMenuItems(); }, initMenuItems:function(){ var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", { rootSchemaName: "MyList" }); esq.addColumn("Caption"); esq.filters.add("Section", this.Terrasoft.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "Section.Id", "f7856ad3-fa4c-4106-9a6c-d8dcd87331eb")); esq.execute(function (response) { if (!response.success) { return; } var actionMenuItems = Ext.create("Terrasoft.BaseViewModelCollection"); response.collection.each(function(item) { var isVisible = this.getVisibility(item.get("Caption")); actionMenuItems.addItem(this.getButtonMenuItem({ "Caption": item.get("Caption"), "Click": {bindTo: "callMyProcess"}, "Enabled": isVisible })); },this); this.set("ButtonMenu", actionMenuItems); },this); } }, diff: /**SCHEMA_DIFF*/[ { "operation": "insert", "parentName": "LeftContainer", "propertyName": "items", "name":"MenuButton", "values": { "itemType": Terrasoft.ViewItemType.BUTTON, "style": Terrasoft.controls.ButtonEnums.style.GREEN, "caption": "Test", "menu": { "items": {"bindTo": "ButtonMenu"} } } } ]/**SCHEMA_DIFF*/
Когда я вызываю мой метод в методе init страницы раздела, то поставленная задача выполняется. НО портится стиль всех остальных кнопок списков, добавляя стрелку пролистывания как в большие, так и в маленькие списки:
Если закоментировать вызов моего метода в методе init, то стрелка в списках пропадает и они отображаются корректно (но в этом случае моя кнопка никогда не инициализирует список).
Что сделано не правильно?
Подскажите, пожалуйста, как решить данную задачу.
Заранее спасибо.
Нравится
Здравствуйте!
Реализовал Ваш пример на тестовом сайте, но подобной проблемы не наблюдаю. Похоже, что проблема не в предоставленном коде, а в чем-то другом. Просьба обратиться в техническую поддержку и указать ссылку на сайт, где реализован пример (или предоставить пакет).