2012-01-20 15 views
7

मैं संपादन कर रहा हूँ इसMagento ग्रिड स्तंभ स्थिति

$this->addColumn('pagamenti', array(
    'header' => 'Paymentsource', 
    'width'=>'50px', 
    'align'  =>'left', 
    'type' => 'text', 
    'renderer' => 'Blablabla_Adminhtml_Block_Sales_Order_Renderer_lol' 
)); 

तरह कस्टम स्तंभ जोड़कर आदेश ग्रिड लेकिन हर स्तंभ कोई फर्क नहीं पड़ता है जहाँ मैं addColumns फोन तक, तालिका के दाईं ओर स्थित है।

क्या स्थिति को मजबूर करने का कोई तरीका है?

धन्यवाद

उत्तर

27

आप शायद addColumnAfter समारोह का उपयोग कर सकते: तो आप (शायद एक घटना के साथ) इस बिंदु के बाद एक स्तंभ जोड़ रहे हैं तो आप की तरह कुछ करने की आवश्यकता होगी।

$this->addColumnAfter('pagamenti', array(
    'header' => 'Paymentsource', 
    'width'=>'50px', 
    'align'  =>'left', 
    'type' => 'text', 
    'renderer' => 'Blablabla_Adminhtml_Block_Sales_Order_Renderer_lol' 
), 'id_of_column_to_be_after'); 
+0

यह काम करता है। – jruzafa

+2

देखें, माता-पिता से पहले इसे कॉल करने का आदेश महत्वपूर्ण हो सकता है, प्रफुल राजपूत – peedee

10

क्या तुमने कभी _prepareColumns विधि है कि आप अधिभावी रहे हैं कि यह sortColumnsByOrder कॉल देखेंगे को देखा गया है।

$this->addColumnsOrder('pagamenti', 'real_order_id') 
    ->sortColumnsByOrder(); 
3

यदि आप अभिभावक :: _ readyColumns() कहते हैं;$ से पहले-> addColumn() या $ यह-> addColumnAfter() तब आपका नया कॉलम हमेशा अंतिम स्थिति पर प्रदर्शित होता है। तो आप माता-पिता की जगह समायोजित कर सकते हैं :: _ readyColumns(); आपकी आवश्यकता के अनुसार कथन।

$this->addColumnAfter('barcode', array(
      'header'   => Mage::helper('sales')->__('Barcode'), 
      'align'   => 'left', 
      'index' => 'barcode', 
      'width' => '200px', 

     ),'real_order_id'); 

     parent::_prepareColumns(); 

यहाँ, बारकोड स्तंभ के तुरंत बाद आदेश क्रमांक # स्तंभ दिखाया जाएगा। यदि आप पैरेंट :: _ readyColumns() डालते हैं;$ इससे पहले-> addColumnAfter के बाद यह ऑर्डर आईडी # कॉलम के बाद प्रदर्शित नहीं होगा। यह केवल आखिरी बार प्रदर्शित होगा।

+0

का उत्तर देखें अपने exp को साझा करने के लिए धन्यवाद .... –

+0

यह उत्तर न केवल नए कॉलम को पहले या बहुत ही जोड़े जायेगा सूची में अंतिम पदों। –

1

जैसा कि अन्य उत्तरों ने इंगित किया है, आप इसे पूरा करने के लिए Mage_Adminhtml_Block_Widget_Grid::addColumnAfter विधि का उपयोग कर सकते हैं।

हालांकि अन्य उत्तरों का उल्लेख करने में असफल रहा है कि कॉलम को को पुन: व्यवस्थित करने के लिए आपको स्पष्ट रूप से Mage_Adminhtml_Block_Widget_Grid::sortColumnsByOrder पर कॉल करना होगा। इस प्रकार

Mage_Adminhtml_Block_Widget_Grid::sortColumnsByOrder विधि Mage_Adminhtml_Block_Widget_Grid::_prepareColumns विधि द्वारा विशेष रूप से कहा जाता है:

/// app/code/core/Mage/Adminhtml/Block/Widget/Grid.php line 557 
protected function _prepareColumns() 
{ 
    $this->sortColumnsByOrder(); 
    return $this; 
} 

इसका मतलब यह है कि आपके व्युत्पन्न वर्ग क्रम में अपने नए आदेश के आधार पर कॉलम फिर से सॉर्ट में भी ऐसा ही करना होगा। उदाहरण के लिए:

protected function _prepareColumns() { 

    /// Let the parent add some columns 
    /// Mage_Eav_Block_Adminhtml_Attribute_Grid_Abstract does add some 
    parent::_prepareColumns(); 

    /// Add some new columns 
    $this->addColumnAfter('sort_order', array(
     'header' => $this->__('Sort Order'), 
     'sortable' => true, 
     'index' => 'sort_order' 
    ), 'frontend_label'); 

    $this->addColumnAfter('attribute_group_name', array(
     'header' => $this->__('Attribute Group'), 
     'sortable' => true, 
     'index' => 'attribute_group_name'), 'sort_order'); 

    /// ! IMPORTANT ! Re-sort the columns with the new additions 
    $this->sortColumnsByOrder(); 
    return $this; 
} 
संबंधित मुद्दे