Вопрос

Забиндить метод по клику на Label

Добрый день, по клику на шапку колонки вызывается функция onClick в label.js, затем идёт проверка подписан ли объект на данный эвент через this.fireEvent("click", this). В Label.hasListener подписки на "click" нету и ничего не происходит. Пожалуйста подскажите, как забиндить метод на click и как передать нужные аргументы в этот метод.

 

Нашёл место где создаются лейблы, но как я понял, через конфиг можно передать только свойства объекта.

/**
 * Rerenders grid header.
 * @protected
 */
reRenderGridHeader: function() {
	var captionContainer = this.Ext.getCmp("gridCaptionContainer");
	var columnsConfigs = this.getGridHeaderConfigs();
	captionContainer.items.clear();
	this.Terrasoft.each(columnsConfigs, function(columnConfig) {
		var label = this.Ext.create("Terrasoft.Label", columnConfig);
		captionContainer.items.add(columnConfig.id, label);
	}, this);
	captionContainer.reRender();
},
 
/**
 * Returns config on caption column.
 * @override
 * @param {Object} columnInfo
 * @param {String} columnInfo.name Column name.
 * @param {Number} columnInfo.colSpan Column size.
 * @param {String} columnInfo.caption Column caption.
 * @return {Object} Column control config.
 */
getCaptionControlConfig: function(columnInfo) {
	var className = "Label";
	var id = ["caption", this._formatColumnName(columnInfo.name), className.toLowerCase()].join("-");
	var config = {
		className: "Terrasoft." + className,
		id: id,
		selectors: {wrapEl: "#" + id},
		markerValue: columnInfo.name
	};
	config.caption = columnInfo.caption;
	config.classes = {
		labelClass: ["grid-cols-" + columnInfo.colSpan,
			"gridRow" + columnInfo.name + "LabelCaption"]
	};
	return config;
},

 

Нравится

3 комментария
Лучший ответ

Это вы сильно глубоко копаете в логику системы. Находите схему ChangeAdminRightsUserTaskPropertiesPage, там есть код(функция generateChangeAdminRightsItemViewConfig) который создаете label и вещает на его нажатие функцию.

Это вы сильно глубоко копаете в логику системы. Находите схему ChangeAdminRightsUserTaskPropertiesPage, там есть код(функция generateChangeAdminRightsItemViewConfig) который создаете label и вещает на его нажатие функцию.

Полозюков Евгений Петрович,

Здравствуйте, в generateChangeAdminRightsItemViewConfig я должен передать уже созданный label? Как передать функцию, на которую я хочу повесить бинд? 

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