2013-10-06 168 views
0

我想將行添加到我的網格。將行添加到網格

我看到文檔的例子:

onAddRouteClick: function(){ 
    // Create a model instance 
    var rec = new KitchenSink.model.grid.Plant({ 
     buying_vendor_id: 12, 
     country_code: '1', 
     route: 0 
    }); 

    this.getStore().insert(0, rec); 
    this.cellEditing.startEditByPosition({ 
     row: 0, 
     column: 0 
    }); 
} 

,但我不能似乎讓它在我的代碼工作。

這是我的網格:

onBtnRoutesSearchClick: function(button, e, options){ 
    var me = this; 
    var v_url = 'GetRoutes.jsp?' + Ext.urlEncode({'route_id': routeID, 'route_country_code' : routeCountryCode , 'route_vendor_id' : routeVendorID}); 

    var newTab = Ext.create('Ext.panel.Panel', { 
     id: 'routes_pannel', 
     title: 'Routes', 
     autoScroll: true, 
     layout: { 
      type: 'fit' 
     }, 
     closable: true, 
     dockedItems: [ 
      { 
       xtype: 'toolbar', 
       dock: 'top', 
       items: [ 
        { 
         xtype: 'button', 
         id: 'buttonResetBid', 
         icon: 'images/Plus.png', 
         text: 'Add Row', 
         listeners: { 
          click: { 
           fn: me.onAddRouteClick, 
           scope: me 
          } 
         } 
        } 
       ] 
      } 
     ], 
     items: [{ 
      id: 'routes_grid', 
      xtype: 'gridpanel', 
      autoShow: false, 
      autoScroll: true, 
      store: Ext.create('Ext.data.Store', { 
       fields:[ 
       {name: 'buying_vendor_id', type: 'int', sortType: 'asInt'}, 
       {name: 'country_code', type: 'int', sortType: 'asInt'}, 
       {name: 'route', type: 'int', sortType: 'asInt'} 
       ], 
       proxy: { 
        type: 'ajax', 
        timeout: 120000, 
        url: v_url, 
        reader: { 
         type: 'json', 
         root: 'data', 
         successProperty: 'success' 
        } 
       }, 
       autoLoad: true 
      }), 
      columns: [ 
       { 
        xtype: 'gridcolumn', 
        dataIndex: 'buying_vendor_id', 
        width: 100, 
        text: 'Buying Vendor' 
       }, 
       { 
        xtype: 'gridcolumn', 
        dataIndex: 'country_code', 
        width: 100, 
        text: 'Country Code' 
       }, 
       { 
        xtype: 'gridcolumn', 
        dataIndex: 'route', 
        width: 80, 
        text: 'Route' 
       } 
      ], 
     }] 
    }); 

    var panel = Ext.getCmp("MainTabPanelID"); 
    panel.add(newTab).show(); 

}

任何想法?

+0

很難告訴你是從做什麼您發佈的代碼。什麼是「我」? 'onAddRouteClick'定義在哪裏?什麼是'onBtnRoutesSearchClick'的成員? – kevhender

+0

'我'和'onAddRouteClick'在編輯中添加,請檢查,基本上我有一個'Ext.container.Viewport'和'onBtnRoutesSearchClick'創建一個新標籤。我嘗試通過按按鈕添加一行,但我不知道如何定義'rec'。看起來應該很容易。 – susparsy

+0

[將一個空行添加到網格]的可能的重複(http://stackoverflow.com/questions/19220343/adding-an-empty-row-to-a-grid) –

回答

0

1.創建模型

Ext.define('Product', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     {name: 'ProductID'}, 
     {name: 'ProductName'}, 
     {name: 'UnitPrice'}, 
     {name: 'UnitsInStock'} 
    ] 
}); 

2.創建您的rowEditing

var rEditor = Ext.create('Ext.grid.plugin.RowEditing', { 
    clicksToEdit: 2, 
    listeners: {edit: function (editor, e) { }); } 
}); 

3.get存儲和創建網格

var grid = Ext.create('Ext.grid.Panel', { 
    store: store, 
    plugins: [rEditor], 
    title: 'Products', 
    columns: [ ], 
    dockedItems: [ { 
     xtype: 'toolbar', 
     dock: 'top', 
     items: [ { 
      xtype: 'button', 
      text: 'Yeni', 
      listeners: { 
       click: { 
        fn: function() { store.insert(0, new Product()); rEditor.startEdit(0, 0); } 
       } 
      } 
     } ] 
    } ], 
    width: 450, 
    renderTo: Ext.getElementById('hede') 
});