1

我在 ext 列中有一个按钮,单击该按钮应通过 ajax 发送一个发布请求。我不知道该怎么做,因为我对 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. 在成功响应时更新网格行。

谢谢!

4

1 回答 1

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'
},
于 2012-12-03T20:49:46.073 回答