Вопрос

Автоматическое создание полей по условию

Необходимо реализовать автоматическое добавление полей на карточку по определенному условию. То есть не в diff заранее добавлять, а именно динамически. Условие должно отрабатывать после загрузки страницы.

Нравится

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

Bind Visible по условию чем плох?

Добрый вечер.

Создаете Ext класс, например, "Terrasoft. TextEdit"

Ext.create("Terrasoft. TextEdit", {...})

 – примеры можно поискать в коробке. Потом находите компонент, в который хотите добавить новый элемент

var cmp = Ext.getCmp()

В полученном компоненте в свойство items добавляете его

cmp.items.add(«новий компонент»)

 Вызываете ререндер, что бы новый компонент отобразился 

cmp.reRender()

 

VladKapitanchyk,

Добрый день. Мне надо после загрузки вкладки добавить.

Пример.

{
		"operation": "insert",
		"name": "Tab4040b433TabLabelGridLayoutef7de6d2",
		"values": {
			"itemType": 0,
			"items": [],
			"afterrender": {
				"bindTo": "loadWidgetModule"
			},
			"afterrerender": {
				"bindTo": "loadWidgetModule"
			}
		},
		"parentName": "Tab4040b433TabLabelGroup9e196572",
		"propertyName": "items",
		"index": 0
	},
loadWidgetModule: function (config) {
				debugger;
 
				var cmp =Ext.getCmp("UsrUsrVwSysAccountLog1PageTab4040b433TabLabelGridLayoutef7de6d2GridLayout");// Ext.getCmp("Tab4040b433TabLabelGridLayoutef7de6d2");
				// this.addFields();
				var labelConfig = Ext.create("Terrasoft.Container", {
					id: "headerContainer",
					items: [
						{
							className: "Terrasoft.Label",
							id: "headerLabel",
							selectors: {
								wrapEl: "#headerLabel"
							},
							caption: "Изменение полей",
 
						}
					]
				});
				 cmp.items.add(labelConfig);
				 cmp.reRender();
			},

но при добавлении элемента (items.add) ошибка  message: Uncaught Terrasoft.ArgumentNullOrEmptyException: Несуществующий или пустой аргумент  в render

Евгений Волоцкой,

В контейнер нужно тоже передавать объект Ext -Ext.create("Terrasoft.Label"…)

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