如何在extjs4中删除网格上的记录



我在extjs4中工作。我有一个视图与网格作为项目与代码:

{
            margin : '10 0 5 100',
            xtype : 'grid',
            id : 'g3',
            //title : 'Educational Details',
             store:'qb.qbquestionoptionStore',
            columns : [ {
                text : 'questionId',
                dataIndex : 'questionId',
                flex : 1
            },
            {
                text : 'category',
                dataIndex : 'category',
                flex : 1
            }, {
                text : 'Answer',
                dataIndex : 'isAnswer',
                flex : 2.5
            },
            {
                header : 'Remove',
                renderer : function(val) {
                    return '<a href="#" id="remove">Remove</a>';
                },
            }

因此,点击删除链接,相应的条目从数据库中删除。但是grid仍然显示被删除的条目。在控制器中,我将其编码为-

deleterow:function(cmp)
            {
                 cmp.mon(cmp.getEl(),'click',function(event,target)
                      {
                  if(target.id=='remove')
                  {  
                    // alert("hello");
                       listview=Ext.getCmp('g3');
                      listview.on({
                          itemClick: function(dv, record, item, index, e,opts)
                          {
                              liststore=this.getStore('qb.qbquestioncomplexityStore').sync();
                              liststore.load({
                                  params:{
                                      id:record.data.id,
                                      questionId:record.data.questionId
                                  }
                              });
                              console.log(record);
                              console.log(" Id is "+record.data.id);
                         var shopCart=Ext.create('Balaee.model.qb.qbquestioncomplexityModel', 
                                      {
                                  id:record.data.id,
                                  questionId:record.data.questionId
                                      });
                              Ext.Msg.confirm('Confirm to delete', 'Want to delete record?', function (button) 
                                      {
                                  if (button == 'yes')
                                  {
                                     shopCart.destroy();
                                  }
                                      }); }
                      });  }
             },this,{delegate:"a"});
            },

那么如何从网格中删除记录?

gridpanel中删除一行,我这样做:

var selectedRecord = grid.getSelectionModel().getSelection()[0];
grid.getStore().each(function(rec) {
    if (rec == selectedRecord) {
        grid.store.remove(rec);
    }
});
grid.getView().refresh();

你的代码有点奇怪,但我认为你差不多了:

最简单的方法是当您为模型设置代理时。您只需要调用destroy()。此记录绑定到的任何存储都将被通知。

if (button == 'yes'){
    record.destroy();
    shopCart.destroy();
}

如果没有,我假设在这个例子中,您的记录只绑定到一个存储,那么您可以这样做

if (button == 'yes'){
    var s = record.store;
    s.remove(record);
    s.store.sync();
    shopCart.destroy();
}

相关内容

  • 没有找到相关文章

最新更新