我通过扩展 prepareColumns 向 Sales > Orders 网格添加了一个客户列。什么决定了列的呈现顺序?是否可以更改列在网格上的位置?
问问题
1993 次
5 回答
3
默认情况下,列按调用 addColumn() 的顺序显示。您可以使用函数 addColumnAfter() 更改它。
以下代码将在“entity_id”列之后添加一个 ID 为“category_id”的列。'entity_id' 是列的 id,而不是“索引”。99/100 次都是相同的,但要注意这一点。
$this->addColumnAfter('category_id',array(
'header' => 'Category ID',
'index' => 'category_id',
'type' => 'text',
'width' => 70
),
'entity_id'
);
于 2012-12-17T22:23:25.407 回答
1
使用$this->addColumnAfter()而不是 $this->addColumn()
$this->addColumnAfter('customattribute', array(
'header'=> Mage::helper('customer')->__('customattribute'),
'index' => 'customattribute2',
'type' => 'options',
'options' => Mage::getSingleton('adminhtml/system_config_source_yesno')->toArray(),
'width' => '100px',
), 'before_grid_id');
于 2017-03-06T08:50:50.387 回答
1
把$this->sortColumnsByOrder(); 最后是 _prepareColumns() 函数。
protected function _prepareColumns() {
parent::_prepareColumns();
$this->addColumnAfter('category_id', array(
'header' => $this->__('Category ID'),
'index' => 'entity_id',
'type' => 'text',
'width' => 70
), 'entity_id');
$this->addColumnAfter('name', array(
'header' => $this->__('Category name'),
'sortable' => true,
'index' => 'category_name'), 'entity_id');
$this->sortColumnsByOrder();
return $this;
}
于 2017-03-06T10:24:23.330 回答
1
恕我直言,以上答案均未回答有关设置现有列的顺序的问题,即无需手动添加。
例如,要将“SKU”列放在“ID”之后,请使用以下代码:
$this->addColumnsOrder('sku', 'entity_id');
其中第一个参数是要在第二个参数中标识的列之后插入的列的 ID/名称。
于 2018-07-25T12:28:20.230 回答
0
通过使用addColumnAfter
and/oraddColumnOrder
函数而不是addColumn
.
于 2012-12-18T01:00:49.123 回答