Hello, I extended the CGridView, CLinkColumn, CDataColumn classes to render custom footer row form (for editing the entries) but every time I sort the grid the footer row vanishes. How does one prevent that from happening?
Here are my custom classes:
Yii::import('zii.widgets.grid.CGridView');
class FormGridView extends CGridView {
    
    public $formId = "mform";
    public $formAction = "";
    public function init(){
        parent::init();
        //$this->enableSorting = false;
    }
    public function registerClientScript(){
        parent::registerClientScript();
        $cs=Yii::app()->getClientScript();
        $cs->registerScriptFile(Yii::app()->baseUrl . '/js/transfer.js');
        $cs->registerCssFile(Yii::app()->baseUrl . '/css/ajaxedit.css');
    }
    public function renderTableFooter(){
        echo "<form id=\"$this->formId\" action=\"$this->formAction\" method=post>";
        parent::renderTableFooter();
        echo "</form>";
    }
}
Yii::import('zii.widgets.grid.CButtonColumn');
class CustomButtonColumn extends CButtonColumn{
    public $primaryKeyName = "id";
    public function init(){
        parent::init();
        $this->footer = '<input type=submit value=Add name=sbutton>' .
             CHtml::hiddenField($this->primaryKeyName, "");
    }
}
Yii::import('zii.widgets.grid.CDataColumn');
class FieldColumn extends CDataColumn{
   public $fieldSize;
   public function init(){
        parent::init();
        $this->footer = CHtml::textField($this->name, '',
            array('size'=> $this->fieldSize));
    }
}
Yii::import('zii.widgets.grid.CLinkColumn');
class HiddenFormColumn extends CLinkColumn{
    //public $dialogUrl;
    public $formIdPrefix = "mform";
    public $buttonHtmlOptions = array('class'=> "unb");
    
    public function init(){
        parent::init();
        $this->footerHtmlOptions['id'] = $this->grid->formId . "pk_display";
        $this->footer = 'New Entry';
        $this->header = "<form action=\"javascript:showNew('" . $this->grid->formId 
                . "');\" ><input type=submit value=New class=unbhdr></form>";
    }
    protected function renderDataCellContent($row,$data){
        $tformId = $this->formIdPrefix . $data->primaryKey;
        echo "<form action=\"javascript:showEdit('$tformId','" . $this->grid->formId 
                . "');\" id=\"" . $tformId . "\">" ;
        foreach ($data as $key => $value) {
            echo CHtml::hiddenField($key, $value);
        }
        echo CHtml::hiddenField('pk', $data->primaryKey);
        echo CHtml::hiddenField('sbutton', "Edit");
        echo CHtml::submitButton($data->primaryKey, $this->buttonHtmlOptions);
        echo '</form>';
    }
}