Tôi muốn tạo một lưới quản trị có thể chỉnh sửa. Vấn đề là cột id của lưới này sẽ là giá trị gia tăng không tự động. Điều này có thể thực hiện?
Bất kỳ ai có thể đề nghị hướng dẫn hoặc bài viết liên quan đến điều này?
CẬP NHẬT: Tôi đang sử dụng một bộ sưu tập thu được bằng cách tham gia bộ sưu tập thuộc tính magento với bảng tùy chỉnh của tôi. Nhưng trong mã được cung cấp bên dưới, nó chỉ chứa bộ sưu tập thuộc tính sản phẩm.
ID
cột sẽ chứaattribute_id
Lưới.php
<?php
class BalanceAP21Connector_ProductSync_Block_Adminhtml_Attributemapping_Edit_Tab_Attribute
extends Mage_Adminhtml_Block_Widget_Grid
{
/**
* Constructor, ensures pagination is hidden
*/
public function _construct()
{
$this->setId('attribute_edit');
$this->setUseAjax(true);
$this->setDefaultSort('attribute_id');
$this->setPagerVisibility(true);
$this->setSaveParametersInSession(true);
parent::_construct();
}
/**
* Prepare grid collection object. Collection object populated
* based on Apparel 21 module settings in admin configuration section.
*/
public function _prepareCollection()
{
$collection = Mage::getResourceModel('catalog/product_attribute_collection');
$collection->addFieldToFilter('frontend_label', array('notnull' => true));
//echo $collection->getSelectSql();exit;
$this->setCollection($collection);
parent::_prepareCollection();
return $this;
}
/**
* Prepare columns for the grid
*/
public function _prepareColumns()
{
$helper = Mage::helper('productsync');
$this->addColumn('attribute_id', array(
'header' => $helper->__('ID'),
'index' => 'attribute_id'
));
$this->addColumn(
'frontend_label',
array(
'header' => $helper->__('Reference Type Name'),
'index' => 'frontend_label'
)
);
$this->addColumn(
'attribute_ids',
array(
'header' => $helper->__('Attribute'),
'width' => '1',
'type' => 'options',
'index' => 'attribute_ids',
'editable' => true,
'options' => Mage::getModel('productsync/attributemapping_system_config_source_attributes')
->toOptionArray(),
'renderer' => 'productsync/adminhtml_attributemapping_widget_grid_column_renderer_options',
)
);
$this->addColumn(
'note_code',
array(
'header' => $helper->__('AP21 note code'),
'index' => 'note_code',
'type' => 'input'
)
);
$this->addColumn(
'note_regexp',
array(
'header' => $helper->__('Note regexp'),
'index' => 'note_regexp',
'type' => 'input'
)
);
return parent::_prepareColumns();
}
public function getGridUrl()
{
//return $this->getUrl("*/*/edit", array("attribute_id" => $row->getId()));
return $this->getUrl('*/*/grid', array('_current'=>true));
}
}
Lưới của tôi là như dưới đây.