我试图产生一个包含最小值,最大值和准确度的大字段列表。不幸的是,其中一些字段需要附加单位,例如时间。我希望能够显示此信息而不必为单位添加另一列,因此我想将其包括在fieldLabel中。

我正在使用CompositeFields,2个文本字段,一个displayfield和另一个文本字段来进行此操作。

这是我想做的事的模拟...
Mockup Image

这是一个可行的选择,还是我需要找到其他解决方法?

目前,我的代码在实际的组合框中有一个[secs ^],但是您可以在上面看到我正在尝试的操作。

我也尝试过使用组合框作为字段标签,但最终以[Object object]代替了实际的fieldLabel。

码:

Ext.FormPanel({
    frame: true,
    layout: 'form',
    border: 'false',
    padding: '15 50 15 50',
    labelAlign: 'right',
    items: [{
        xtype: 'compositefield',
        msgTarget: 'side',
        labelStyle: 'width:220px',
        anchor: '-140',
        defaults: {
            flex: 1,
        },
        items: [{
            xtype: 'displayfield',
            style: 'text-align:center',
            value: 'Min'
        }, {
            xtype: 'displayfield',
            style: 'text-align:center',
            value: 'Max'
        }, {
            xtype: 'displayfield',
            width: '20px'
        }, {
            xtype: 'displayfield',
            style: 'text-align:center',
            value: 'Accuracy'
        }]
    }, {
        xtype: 'compositefield',
        fieldLabel: 'Average Percent Completed',
        labelStyle: 'width:220px',
        anchor: '-140',
        msgTarget: 'side',
        defaults: {
            flex: 1
        },
        items: [{
            xtype: 'numberfield',
            mode: 'local',
            name: 'percentMin'
        }, {
            xtype: 'numberfield',
            mode: 'local',
            name: 'percentMax'
        }, {
            xtype: 'displayfield',
            value: '+/-',
            width: '20px'
        }, {
            xtype: 'numberfield',
            mode: 'local',
            name: 'percentAcc'
        }]
    }, {
        xtype: 'compositefield',
        fieldLabel: 'Average Time [sec ^]',
        msgTarget: 'side',
        labelStyle: 'width:220px',
        anchor: '-140',
        defaults: {
            flex: 1
        },
        items: [{
            xtype: 'numberfield',
            mode: 'local',
            name: 'avgTimeMin'
        }, {
            xtype: 'numberfield',
            mode: 'local',
            name: 'avgTimeMax'
        }, {
            xtype: 'displayfield',
            value: '+/-',
            width: '20px'
        }, {
            xtype: 'numberfield',
            mode: 'local',
            name: 'avgTimeAcc'
        }]
    }]
});


有人对如何解决这个问题有任何建议吗?

最佳答案

我认为无法使用复合字段和字段标签来完成您的建议。字段标签严格用于文本,这就是为什么看到[Object object]的原因。

但是,如果要避免增加多余的列,则可以尝试更改fieldLabel's Xtemplate以包含一个下拉列表(尽管我主张以不同的方式设计应用程序会比这更好)。

关于javascript - CompositeField上的自定义FieldLabel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4736400/

10-13 00:36