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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...