編集可能な管理グリッドを作成したいのですが。問題は、このグリッドのid列が非自動インクリメント値になることです。これは実装可能ですか?
これに関連するチュートリアルや記事を提案できますか?
更新:magento属性コレクションをカスタムテーブルに結合することで得られるコレクションを使用しています。ただし、以下の提供されたコードには、製品属性コレクションのみが含まれています。
ID
列にはattribute_id
Grid.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));
}
}
私のグリッドは以下の通りです。
良い質問。+1。質問に詳細を追加してください。グリッドのデータベースから実際のコレクションをロードしていますか?はいの場合、その詳細を提供します。可能であれば、グリッドファイルを表示してください
—
Rajeev K Tomy
どんな提案でも本当に感謝します
—
Sukeshini
どうもありがとう。質問を編集しました。コレクションは実際の物理テーブルからのものではありません。
—
スケシニ2015
その場合は、グリッドページで使用しているコレクションをお知らせください
—
Rajeev K Tomy
質問を再度更新
—
Sukeshini 2015