我有一个textfield
,里面有大量文字,我无法全部显示。
我需要tooltip
才能显示textfield
上mouseover
的所有文本。但是我无法使用text: c.getValue()
实现它。如果我输入诸如text: "MyToolTips"
之类的自定义字符串,则一切正常。我尝试使用afterrender
并显示相同的结果-没有任何内容,空tooltip
。
这是我的代码:-
{
xtype: 'textfield',
name: 'InfoTypingName',
fieldLabel: 'MyLable',
labelWidth: 200,
readOnly: true,
listeners: {
show: function (c) {
Ext.QuickTips.register({
target: c.getEl(),
text: c.getValue(),
enabled: true,
showDelay: 20,
trackMouse: true,
autoShow: true
});
}
}
}
答案 0 :(得分:0)
您可以这样尝试:
Ext.application({
name: 'Fiddle',
launch: function () {
Ext.QuickTips.init();
var verylongText="This is very long text. somewhat around too long. and still going on. Oh its still there.";
for(var i=0;i<4;i++) {
verylongText = verylongText + verylongText;
}
Ext.create('Ext.panel.Panel', {
renderTo: Ext.getBody(),
title: 'Textfield with tooltip',
items: [{
xtype: 'textfield',
padding: 10,
id: 'uniqueId',
value: verylongText,
readonly:true,
listeners: {
afterrender: function (me) {
console.log(arguments);
var a=Ext.create('Ext.tip.ToolTip', {
dismissDelay: 5000000,
target: 'uniqueId',
html: '<div style="display:flex;word-break:break-all;">' + me.getValue() + '</div>',
width: 'auto',
});
}
}
}]
})
}
});
答案 1 :(得分:0)
您可以按以下方式进行操作:-
listeners: {
afterrender: function (me) {
// your POST request goes here
Ext.Ajax.request({
url: "data.json",
method: "POST",
success: function (response) {
// set the value got from request
me.setValue(Ext.decode(response.responseText).data.value);
// create tooltip
var a = Ext.create('Ext.tip.ToolTip', {
dismissDelay: 5000000,
target: 'uniqueId',
html: '<div style="display:flex;word-break:break-all;">' + me.getValue() + '</div>',
width: 'auto',
});
}
});
}
}
希望这会帮助/指导您。