Jump to content

FieldLabel + svg icon


x11

Recommended Posts

Я имел ввиду, что я перенес код в onCreate и все равно нет иконок.

А важно ли то, что первым будет в очереди?

процедура загрузки "function window.beforeInit" или 

FormControl.JSInterface.JSAddListener('pained', 'togglePainted');

FormControl.JSInterface.JSConfig('IconFileName', [IconFileName]);

т.е. в каком порядке правильно загружать?

Link to comment
Share on other sites

вот что заметил, ошибка

Uncaught TypeError: sender.setLabel is not a function

 

function window.beforeInit(sender, config) 
{
	createToolTip = function(combo, tip) {
		combo.labelTip = Ext.create('Ext.tip.ToolTip', {
			closable: true,
			align: 'tl',
			focusOnToFront: true,
			autoHide: true,
			autoShow: true,
			autoScroll: true
		});

		combo.labelElement.addListener('click', function(e) {
			e.preventDefault();
			if (combo.labelTip) {
				if (combo.getPlaceholder()) {
					combo.labelTip.setHtml(combo.getPlaceholder());
				} else {
					combo.labelTip.setHtml(tip);
				}
				combo.labelTip.showByTarget(combo.inputElement);
			}
		});
	};
	
	window.togglePainted = function() {
        var me = this;
        if (me.IconFileName) {
            var svgHeight = me.element.getHeight() - 30;
            sender.setLabel('<p class="svgIconLabel"><img class="svgIcon" height="' + svgHeight + 'px" src="files/svg/' + me.IconFileName + '"></img>' + me._label + '</p>');
        }
    };
	
}

 

Screenshot_2.jpg

Link to comment
Share on other sites

вот так получилось

sender.setLabel я исправил на me.setLabel

function window.beforeInit(sender, config) 
{
	createToolTip = function(combo, tip) {
		combo.labelTip = Ext.create('Ext.tip.ToolTip', {
			closable: true,
			align: 'tl',
			focusOnToFront: true,
			autoHide: true,
			autoShow: true,
			autoScroll: true
		});

		combo.labelElement.addListener('click', function(e) {
			e.preventDefault();
			if (combo.labelTip) {
				if (combo.getPlaceholder()) {
					combo.labelTip.setHtml(combo.getPlaceholder());
				} else {
					combo.labelTip.setHtml(tip);
				}
				combo.labelTip.showByTarget(combo.inputElement);
			}
		});
	};
	
	window.togglePainted = function() {
        var me = this;
        if (me.IconFileName) {
            var svgHeight = me.element.getHeight() - 30;
            me.setLabel('<p class="svgIconLabel"><img class="svgIcon" height="' + svgHeight + 'px" src="files/svg/' + me.IconFileName + '"></img>' + me._label + '</p>');
        }
    };
	
}

 

  • Upvote 1
Link to comment
Share on other sites

  • 1 month later...
  • 11 months later...
On 10/14/2020 at 7:02 PM, Sherzod said:

Попробуйте это решение:

возникла небольшая проблема...

свойство _label содержит не название, а весь HTML, поэтому на форме выводится иконка дважды

Подскажите, что использовать вместо me._label?

Спасибо.

Screenshot_4.jpg

Screenshot_5.jpg

Link to comment
Share on other sites

30 minutes ago, x11 said:

me._label

Заменил на me.initialConfig.label, лишний HTML исчез.

Правда, не знаю, правильно это или нет.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...