2011-08-04 2 views
3

로드가 비어 있고 버튼 클릭을 기반으로 채울 격자가 있습니다.빈 저장소가있는 ExtJS 그리드는 추가/삽입시에만 최신 레코드가 추가되었음을 보여줍니다.

저장소에 (config)로 시작하는 데이터가있는 경우 새 레코드가 추가되어 그리드에 아무런 문제가 없습니다.

그러나 처음에 데이터가없는 표를 사용하면 새 레코드를 추가 할 때 저장소 수에 추가가 반영되지만 그리드에는 최근에 추가 된 레코드 만 표시됩니다.

어디에서 볼지 제안 해 주시면 감사하겠습니다. 고맙습니다. 여기

코드입니다 :

var srGrid = new Ext.grid.GridPanel({ 
    id: 'srGrid', 
    title: 'Scheduled For', 
    x: 230, 
    y: 40, 
    width: 200, 
    store: new Ext.data.ArrayStore({ 
     fields: ['index', 'date'], 
     idIndex: 0, 
     autoLoad: false 
    }), 
    columns: [ 
     {dataIndex: 'date', id: 'srCol', width: 196, menuDisabled: true} 
    ], 
    listeners: { 
     beforeshow: function() { 
      //this.store.removeAll(); 
     } 
    } 
}); 

var srCustomContentPanel = new Ext.Panel({ 
    id: 'srCustomScheduleContent', 
    border: false, 
    layout: 'absolute', 
    items: [ 
     srGrid, 
     { 
      xtype: 'button', 
      id: 'addButton', 
      text: 'Add to Scheduled', 
      handler: function() { 
       var idx = srGrid.store.getCount()+1; 
       var newData = { 
        index: idx, 
        date: 'tomorrow'+idx 
       }; 
       //var recId = 3; // provide unique id 
       var p = new srGrid.store.recordType(newData, idx); // create new record 
       console.log(p); 
       srGrid.store.insert(0, p); 
      }, 
      x: 10, 
      y: 250 
     }, 
    ]} 
); 

답변

0

귀하의 코드는 나를 위해 작동 : http://jsfiddle.net/sadkinson/rF5TQ/24/

내가 jsfiddle에 렌더링하기 위해 약간 수정했습니다. 아마도 그것은 당신이 사용하고있는 absolute 레이아웃과 관련이있을 것입니다. FireBug를 사용하여 DOM을 점검하고 실제로 추가 행이 있는지 확인할 수 있지만 표시되지는 않습니다.

0

그리드의 높이를 언급하는 것을 잊어 버렸습니다.

autoHeight : true fixed.

+1

질문에 대한 수정 사항이어야합니다. –

관련 문제