Extjs4按钮单击网格

时间:2012-12-01 19:09:55

标签: ruby-on-rails-3 extjs4

我在ext列中有一个按钮,点击它时应该通过ajax发送一个post请求。 我不知道该怎么做,因为我对Ext很新。

以下是我的按钮渲染器:

statusRenderer: function(value, metaData, record, rowIndex, colIndex, store) {
  var html = '<span style="color:red;">' + value + '</span>';
  html += '&nbsp;<button type="button" data-id=' + record.data.ad_id + '>Reaudit</input>'
  return html;
}

请指点我如何:
1.设置点击处理程序
2.设置商店以执行ajax帖子请求
3.在成功响应时更新网格行。

谢谢!

1 个答案:

答案 0 :(得分:1)

这就是我最终做到的方式:

AuditStatusGrid.js

initComponent: function() {
  this.columns = [
    ...
    { header: 'Status', dataIndex: 'audit_status', renderer: me.statusRenderer, width: 130 },
    ...
  ];
}


statusRenderer: function(value, metaData, record, rowIndex, colIndex, store) {
if (value == 'Rejected') {
  var id = Ext.id();
  Ext.defer(function () {
    Ext.widget('button', {
      renderTo: id,
      text: 'Reaudit',
      width: 70,
      handler: function () {
        console.log(record.get('id'));
        record.set('audit_status', 'Reaudit');
        store.save();
      }
    });
  }, 50);
  return Ext.String.format('<div id="{0}"><span style="color:red;">Rejected</span>&nbsp;</div>', id);
}
return value;
}

AuditStatusStore.js

...
proxy: {
  root: 'json',
  type: 'rest',
  url : '/audit_statuses'
},