Javascript 将组合框宽度设置为自动调整';ExtJS中的最长字段选项文本
如何设置组合框宽度以自动适应其最长字段选项文本 比如说,我有一个宽度为300的组合框字段。但是如果从这个组合框中有一个字段选项,它有一些长文本-大于300px 我想让我的组合框宽度自动适应那个长字段选项 在组合框中查看整个选定字段选项而不进行任何剪切 实际上,我忘了在extjs中有一个对combo做同样事情的配置 我认为在ExtJS4中,组合宽度被设置为自动适应最长字段选项Javascript 将组合框宽度设置为自动调整';ExtJS中的最长字段选项文本,javascript,html,css,extjs,combobox,Javascript,Html,Css,Extjs,Combobox,如何设置组合框宽度以自动适应其最长字段选项文本 比如说,我有一个宽度为300的组合框字段。但是如果从这个组合框中有一个字段选项,它有一些长文本-大于300px 我想让我的组合框宽度自动适应那个长字段选项 在组合框中查看整个选定字段选项而不进行任何剪切 实际上,我忘了在extjs中有一个对combo做同样事情的配置 我认为在ExtJS4中,组合宽度被设置为自动适应最长字段选项 我不想通过动态添加代码来自动调整大小;它在Ext代码中不可用。大概是这样的: listeners: { after
我不想通过动态添加代码来自动调整大小;它在Ext代码中不可用。大概是这样的:
listeners: {
afterrender: function(box) {
var width = 0,
metrics = new Ext.util.TextMetrics();
box.getStore().each(function(rec) {
var recWidth = textMetrics.getWidth(rec.get(box.displayField));
width = Math.max(width,recWidth);
});
box.setWidth(width);
}
}
没有任何测试或保证,但你应该知道如何解决它
可以找到如何使用TextMetrics的详细示例。无需添加任何手动代码。.不要给出宽度 成长:正确,
增长最长值:真 在ExtJS 6中也为我工作
Ext.create('Ext.form.ComboBox', {
fieldLabel : 'Field',
store : ['a', 'b', 'c', 'Long long long long long long long long'],
grow : true,
growToLongestValue : true,
renderTo : Ext.getBody()
});
Check Sencha Fiddle寻求代码帮助的问题必须包含在问题本身中重现代码所需的最短代码。请看是的,在extjs中,不需要任何手动代码就可以做到这一点。。。