小弟因项目需要,急要动态创建ext中的控件。
具体要求是:
在FormPanel中有一个textfield a,当在a中输入一个数字时,则在FormPanel中动态的创建a中对应数字个数的combobox控件。另外当a中数字大于1时,这时候该怎么样在FormPanel中进行布局。(注:原有的form是两列布局 )
还请大虾帮个忙。万分感谢!!!

解决方案 »

  1.   

    简单的说下思路吧 代码还是楼主自己动动手吧 这样受益的是自己监听textfield的keyup事件 当输入数字n时 调用panel的add方法 for循环创建n个combo add到panel中关于布局也好做 双列布局 我们可以把每一列都做一个panel layout是form 然后把combo分别往这两个panel中加
    奇数的加左边panel 偶数的加右边panel  
      

  2.   

    大虾,现在我已经能够动态创建了。就是布局还有些问题。我现在的布局文件是这个样子的:
        var form = new Ext.FormPanel
        (
            {
                title: "合班处理",
                frame: true,
                layout: "form",     //ID nvcuserCode nvcpwd nvcisValid
                items: [                 //总体划分 上下两个部分
                                            {
                                            layout: "column",
                                            items: [
                                                        {         // 第一列
                                                            columnWidth: .5,
                                                            layout: "form",
                                                            xtype: "panel",
                                                            name:"leftform",
                                                            items: [
                                                                        KCMCTextField,
                                                                        APARTTextField
    //                                                                    XKJSGHCmb,
    //                                                                    SYJSGHCmb,
    //                                                                    SJJSGHCmb
                                                                    ]
                                                        },                                                    {         //第二列
                                                            columnWidth: .5,
                                                            layout: "form",
                                                            xtype:"panel",
                                                            name:"rightform",
                                                            items: [
                                                                        BJTextField
    //                                                                    QTSKJSTextField,
    //                                                                    FZZDGHCmb
                                                                    ]
                                                        } //结束第二列                                                  ]
                                        }, SKDDBZTextArea, SKSJBZTextArea
                                          ],现在还不太布局一直有问题,还请指教啊
      

  3.   

    function createComBox(id,name) {
    var c = new Ext.form.ComboBox({
    mode : 'local',
    forceSelection : true,
    triggerAction : 'all',
    displayField : 'name',
    fieldLabel: name,
    valueField : 'code',
    idProperty : 'code',
    fields : ['code', 'name'],
    store : [],
    id : id
    })
    return c;
    } var form = new Ext.FormPanel({
    title : "合班处理",
    frame : true,
    autoHeight : true,
    applyTo : Ext.getBody(),
    layout : "column",
    items : [{
    columnWidth : .5,
    layout : "form",
    id : 'left',
    xtype : "panel",
    name : "leftform",
    items : [createComBox('dd','name1')] }, {
    columnWidth : .5,
    layout : "form",
    xtype : "panel",
    id : 'right',
    name : "rightform",
    items : [createComBox('ddd','name1')]
    }] })
    给你简单的写了点  在keyup事件中  调用那个createCombox方法(里边的东西你自己整整哈) 把id和name传进去 奇数的Ext.getCmp('left').add(新建的combox) 偶数的加右边