2011-08-21 85 views
1

這是這個ausom row editor工具在ext js中。
enter image description here
我正在尋找更復雜的網格和實際形式的工具。
有好的API的東西,所以我可以給用戶足夠的能力看到從全屏幕,而不是連續。
有些東西可以幫助我構建越來越多的CRUD,而無需一次又一次地重新創建表格。
類似於設置中的「表單渲染器」。Extjs自動錶格/綁定

我在哪裏可以得到這種類型的API。
謝謝

+1

是什麼樣的形式你在說什麼?你想讓網格的列在表單中打開嗎? –

+0

@Varun Achar - 確切地說,對於快速CRUDing – fatnjazzy

+2

我不認爲打開窗體只是爲了編輯一行是一個好主意,除非網格僅顯示數據的子集。打開窗體進行編輯只會增加用戶點擊,這是令人煩惱的。另外,使用行編輯器進行編輯會更快,因爲您可以將行編輯器配置爲像「ctrl + enter」這樣的存儲等。 –

回答

4

我不知道任何內置的「表單渲染器」,但您可以使用表格的loadRecord方法創建模擬。
首先,您使用與表單的columns相同的一組輸入創建表單(顯然,您可以動態地完成)。例如,如果你columns的配置是這樣的:

columns: [ 
    {header: 'Name', dataIndex: 'name'}, 
    {header: 'Email', dataIndex: 'email', flex:1}, 
    {header: 'Phone', dataIndex: 'phone'} 
], 

表單的配置應該是這樣的:

Ext.define('ux.FormEditor', { 
    extend: 'Ext.window.Window', 
    alias : 'widget.formeditor', 
    title : 'Edit User', 
    layout: 'fit', 
    autoShow: true, 
    initComponent: function() { 
     this.items = [{ 
      xtype: 'form', 
      items: [{ 
        xtype: 'textfield', 
        name : 'name', 
        fieldLabel: 'Name' 
       },{ 
        xtype: 'textfield', 
        name : 'email', 
        fieldLabel: 'Email' 
       },{ 
        xtype: 'textfield', 
        name : 'phone', 
        fieldLabel: 'Phone' 
       }] 
     }]; 

     this.buttons = [{ 
       text: 'Save', 
       action: 'save' 
      },{ 
       text: 'Cancel', 
       scope: this, 
       handler: this.close 
      }]; 

     this.callParent(arguments); 
    } 
}); 

現在你對電網的itemdblclick事件分配處理程序:

yourGrid.on('itemdblclick', function(grid, record) { 
    var view = Ext.widget('useredit'), 
     form = view.down('form'); 

    form.loadRecord(record); 
    view.down('button[action=save]').on('click', function(btn) { 
     var rec = form.getRecord(), 
      values = form.getValues(); 

     rec.set(values); 
     view.close(); 
    }); 
});