将两个值组合成extjs 4.1的形式

combining two values in a form extjs 4.1

本文关键字:extjs 组合 两个      更新时间:2024-03-29

我刚刚构建了一个具有两个值的表单,一个是时间段,另一个是客户端名称。现在我想用日期字段和下拉菜单来更改它们的文本字段。下拉菜单是制作的,但对于字段"期间",我有一些问题。这是手册中用于构建日期字段的页面。问题是,表单字段在一个字符串中包含两个日期,它被称为"周期"。但它们的日期字段都是一个单独的字段,表单中的每个字段都有一个id,所以我不会有我要搜索的字段,而是两个分开的字段。代码如下:

 items: [{
    xtype: 'datefield',
    anchor: '100%',
    fieldLabel: 'From',
    name: 'from_date',
    maxValue: new Date()  // limited to the current date or prior
}, {
    xtype: 'datefield',
    anchor: '100%',
    fieldLabel: 'To',
    name: 'to_date',
    value: new Date()  // defaults to today
}],

如何将这两个日期组合在一个字段中以供处理表单?有破解或变通方法吗?非常感谢。

更新好的,我用"period"id设置了一个隐藏字段。它的值应该是两个日期字段的值的组合。问题是我不知道如何在其他对象中获取日期字段的值。代码如下(要使其工作,您必须去掉"周期"字段中的行"值:"):

{
                        xtype: 'datefield',
                        fieldLabel: 'Start date',
                        format: 'Ymd',
                        //altFormats: 'Ymd',
                        listeners: {
                            'change': function(me) {
                                alert(me.getSubmitValue());
                            }
                        }},
                        {
                        xtype: 'datefield',
                        fieldLabel: 'End date',
                        format: 'Ymd',
                        //altFormats: 'm/d/Y',
                        listeners: {
                            'change': function(me) {
                                alert(me.getSubmitValue());
                            }
                        }},
                        {
                        xtype: 'textfield',
                        hidden:true,
                        fieldLabel: 'Period',
                        id: 'period'
                        value:
                        },
                        {
                            xtype: 'textfield',
                            name: 'client',
                            fieldLabel: 'Client',
                            id: 'client'
                        }

我该如何将这两个值结合起来?感谢

IMO是一种简单快捷的方法,只需创建一个隐藏字段即可存储两者的值。然后,在提交处理程序中,只需从两个字段中获取值,并将它们组合成所需的任何值,然后将其设置在隐藏字段上。

如果您的表单正在提交一个模型实例,您可以做同样的事情,但只需设置所需的持久属性的值,而不必使用隐藏的表单字段。

顺便说一下,这两种方法都不被认为是破解——只是利用API来满足您的业务需求。

"更全面"的解决方案是创建一个自定义字段,该字段需要两个日期字段的输入,但具有getValue()的自定义实现,该实现从基础日期字段中检索值并创建复合值。下面是一个为属性网格编辑器执行此操作的示例:https://fiddle.sencha.com/#fiddle/t1

对于一个表单,原理是一样的。