2012-12-20 34 views
1

我在模塊中創建了一個自定義選項卡,併成功顯示一個網格輸出,但我的問題是我們如何在一個頁面中顯示兩個網格串化器模塊?我試圖用這個代碼調用兩個串行器塊。magento的網格佈局

public function customgridAction() 

{ 
    $this->loadLayout(); 
    $this->getLayout()->getBlock('regionpage.productgrid')->setProductsGrid($this->getRequest()->getPost('products_grid', null)); 
    $this->getLayout()->getBlock('regionpage.articlegrid')->setArticlesGrid($this->getRequest()->getPost('articles_grid', null)); 
    $this->renderLayout(); 
} 

而這正是我的佈局XML看起來像

<regionpage_adminhtml_regionpage_customgrid> 
<block type="core/text_list" name="root"> 
    <block type="regionpage/adminhtml_regionpage_edit_tab_productgrid" name="regionpage.productgrid"/> 
    <block type="adminhtml/widget_grid_serializer" name="regionpage_productgrid"> 
     <reference name="regionpage_productgrid"> 
      <action method="initSerializerBlock"> 
       <grid_block_name>regionpage.productgrid</grid_block_name> 
       <data_callback>getSelectedProducts</data_callback> 
       <hidden_input_name>links[productgrid]</hidden_input_name> 
       <reload_param_name>products_grid</reload_param_name> 
      </action> 
      <action method="addColumnInputName"> 
       <input_name>position</input_name> 
      </action> 
     </reference> 
    </block> 
</block> 

<regionpage_adminhtml_regionpage_customgrid> 
    <block type="core/text_list" name="root"> 
     <block type="regionpage/adminhtml_regionpage_edit_tab_articlegrid" name="regionpage.articlegrid"/> 
     <block type="adminhtml/widget_grid_serializer" name="regionpage_articlegrid"> 
      <reference name="regionpage_articlegrid"> 
       <action method="initSerializerBlock"> 
        <grid_block_name>regionpage.articlegrid</grid_block_name> 
        <data_callback>getSelectedArticles</data_callback> 
        <hidden_input_name>links[articlegrid]</hidden_input_name> 
        <reload_param_name>articles_grid</reload_param_name> 
       </action> 
       <action method="addColumnInputName"> 
        <input_name>position</input_name> 
       </action> 
      </reference> 
     </block> 
    </block> 
</regionpage_adminhtml_regionpage_customgrid> 

但它輸出最後一塊不能同時塊。

+0

你能分享你如何添加的初始網格? 謝謝 – boruch

+1

我已經參考這個鏈接來創建網格http://magebase.com/magento-tutorials/understanding-the-grid-serializer-block/ – Mufaddal

+0

乾杯:)看起來很有趣 – boruch

回答

1

好吧,我想我已經破解了它。

的問題出現,當您使用一旦你定義那麼如果具有相同名稱的另一個塊走來後就會被覆蓋名「root」塊包裝塊

<block type="core/text_list" name="root"> 

是。 (糾正我,如果我錯了)

有兩種解決方案,你可以嘗試。

  1. 合併兩組您的XML成一個部

這將使您的XML如下

<regionpage_adminhtml_regionpage_customgrid> 
    <block type="core/text_list" name="root"> 
    <block type="regionpage/adminhtml_regionpage_edit_tab_productgrid" name="regionpage.productgrid"/> 
    <block type="adminhtml/widget_grid_serializer" name="regionpage_productgrid"> 
     <reference name="regionpage_productgrid"> 
      <action method="initSerializerBlock"> 
       <grid_block_name>regionpage.productgrid</grid_block_name> 
       <data_callback>getSelectedProducts</data_callback> 
       <hidden_input_name>links[productgrid]</hidden_input_name> 
       <reload_param_name>products_grid</reload_param_name> 
      </action> 
      <action method="addColumnInputName"> 
       <input_name>position</input_name> 
      </action> 
     </reference> 
    </block> 
    <block type="regionpage/adminhtml_regionpage_edit_tab_articlegrid" name="regionpage.articlegrid"/> 
     <block type="adminhtml/widget_grid_serializer" name="regionpage_articlegrid"> 
      <reference name="regionpage_articlegrid"> 
       <action method="initSerializerBlock"> 
        <grid_block_name>regionpage.articlegrid</grid_block_name> 
        <data_callback>getSelectedArticles</data_callback> 
        <hidden_input_name>links[articlegrid]</hidden_input_name> 
        <reload_param_name>articles_grid</reload_param_name> 
       </action> 
       <action method="addColumnInputName"> 
        <input_name>position</input_name> 
       </action> 
      </reference> 
     </block> 
    </block> 
</regionpage_adminhtml_regionpage_customgrid> 
  • 簡單替換在第二部分中的關注部分

  • 與參考節點這將使你的第二個部分看起來像

    <regionpage_adminhtml_regionpage_customgrid> 
        <reference name="root"> 
        <block type="regionpage/adminhtml_regionpage_edit_tab_articlegrid" name="regionpage.articlegrid"/> 
         <block type="adminhtml/widget_grid_serializer" name="regionpage_articlegrid"> 
          <reference name="regionpage_articlegrid"> 
           <action method="initSerializerBlock"> 
            <grid_block_name>regionpage.articlegrid</grid_block_name> 
            <data_callback>getSelectedArticles</data_callback> 
            <hidden_input_name>links[articlegrid]</hidden_input_name> 
            <reload_param_name>articles_grid</reload_param_name> 
           </action> 
           <action method="addColumnInputName"> 
            <input_name>position</input_name> 
           </action> 
          </reference> 
         </block> 
        </reference> 
    </regionpage_adminhtml_regionpage_customgrid> 
    

    下面是一個Magento的堆疊交換答案https://magento.stackexchange.com/questions/3376/grid-layout-in-magento/3804#3804