Добрый день!
Есть задача по реализации кнопки-меню с динамическим списком. Нужно создать кнопку по типу 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, то стрелка в списках пропадает и они отображаются корректно (но в этом случае моя кнопка никогда не инициализирует список).
Что сделано не правильно?
Подскажите, пожалуйста, как решить данную задачу.
Заранее спасибо.