1

Ext JSを初めて使用するので、古いアプリを更新する必要があります。EditorGridPanelには「追加」ボタンがあり、正常に機能します。ただし、グリッドから行を削除する「削除」ボタンを追加する必要があります。これがグリッドへのコードです。ご協力いただきありがとうございます。

 /*==== INVOICE DATA START =======================================================*/
    var iLineItemCM = new Ext.grid.ColumnModel([
         {id:'i_line_item_name', header: "Line Item Name", dataIndex:     'i_line_item_name', width: 280,
           editor: new Ext.form.TextField({allowBlank: false})}
        ,{header: "Amount", dataIndex: 'i_line_item_amt', width: 80, align: 'right', renderer: 'usMoney',
         editor: new Ext.form.NumberField({
               allowBlank: false,
               allowNegative: false,
               maxValue: 100000
           })}
        ]);

    var iLineItemRec =
        new Ext.data.Record.create([
            {name: 'i_line_item_name'    ,mapping: 'i_line_item_name'  ,type: 'string'}
           ,{name: 'i_line_item_amt'     ,mapping: 'i_line_item_amt'   ,type: 'string'}
         ]);

    var iLineItemStore = new Ext.data.Store({
        url: '',
        reader: new Ext.data.JsonReader({
               root: 'rows'
         },
           iLineItemRec
        )
    });

    var iLineItemGrid = new Ext.grid.EditorGridPanel({
        store: iLineItemStore,
        cm: iLineItemCM,
        width: 'auto',
        height: 'auto',
        //title:'Edit Plants?',
        frame:false,
        //plugins:checkColumn,
        clicksToEdit:1,
        viewConfig: {
            //forceFit: true,
            autoFit:true
      },
      id: 'iLineItemStore',
        tbar: [{
            text: 'Add Line Item',
            handler : function(){
               var r = new iLineItemRec({
                   i_line_item_name: '',
                    i_line_item_amt: ''
               });
                iLineItemGrid.stopEditing();
               iLineItemStore.insert(0, r);
               iLineItemGrid.startEditing(0, 0);
          }
      }]
    });

 ///////////////////
4

1 に答える 1

1

セル選択モデルのドキュメントから:http://docs.sencha.com/ext-js/2-3/#!/api/Ext.grid.CellSelectionModel

セルモデルがデフォルトとして指定されています。

getSelectedCell( ) : Array
Returns the currently selected cell's row and column indexes as an array (e.g., [0, 0]).

だから...

 { text: 'Remove', 
  tooltip:'Remove the selected item',
  handler: function(){ 
  iLineItemGrid.stopEditing();
  var r = iLineItemGrid.getSelectionModel().getSelectedCell();
  iLineItemStore.removeAt(r[1]); } }
于 2012-05-18T13:04:24.113 に答える