Добрый день!

 

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

 

Что сделано не правильно?

Подскажите, пожалуйста, как решить данную задачу.

 

Заранее спасибо.

Нравится

1 комментарий

Здравствуйте!

 

Реализовал Ваш пример на тестовом сайте, но подобной проблемы не наблюдаю. Похоже, что проблема не в предоставленном коде, а в чем-то другом. Просьба обратиться в техническую поддержку и указать ссылку на сайт, где реализован пример (или предоставить пакет). 

Показать все комментарии

Доброго времени суток.

Столкнулся с такой проблемой.
Задача: мониторить пропущенные звонки. На таймере раз в 5 минут шлю запрос на выборку пропущенных звонков и меняю caption закладке:

pgMissedCalls.BeginUpdate();
pgMissedCalls.Caption = "Пропущеные (" + Dataset.RecordsCount + ")";
pgMissedCalls.EndUpdate();

пробовал по-разному, но проблема остается.
Прорисовка caption происходит только, если мышкой по нему повозить или поставить фокус... Может есть что-то типа Repaint() как у грида или можно как-то без установки фукуса "передернуть" вкладку?

Версия 3.2.

Нравится

2 комментария

Юрий, а зачем BeginUpdate/EndUpdate делаете? В случае одной строки между ними никакого выигрыша скорее всего не получите. Э это может решить проблему.

BeginUpdate/EndUpdate - это одна из попыток заставить работать. Без этого тоже самое, что и с этим...
Проблему решил "миганием" появляющегося lable. Как ни странно, но с периодичной сменой цвета у lable все ок.

Показать все комментарии