一直在尋找一種解決方案來爲「自定義列」添加一個功能......這意味着,我列出了一列列,可以向用戶顯示並選擇他想要查看的列表選擇表格進行更新並添加/刪除所需的列。Yii CGridView - 自定義列
沒有找到谷歌什麼(也許它比我一直在尋找......不同的名字)
任何人有如何可以實現的想法?
在此先感謝!
一直在尋找一種解決方案來爲「自定義列」添加一個功能......這意味着,我列出了一列列,可以向用戶顯示並選擇他想要查看的列表選擇表格進行更新並添加/刪除所需的列。Yii CGridView - 自定義列
沒有找到谷歌什麼(也許它比我一直在尋找......不同的名字)
任何人有如何可以實現的想法?
在此先感謝!
這不是一個完整的示例,但可以給你一些關於如何實現它的線索。您必須定義某種形式來收集有關網格如何呈現的數據。如果有超過3個輸入字段,我建議你創建一個CFormModel類。創建包含一個柵格上的文件的帶的形式的視圖文件和一個div或的RenderPartial:
$form = $this->beginWidget('CActiveFormExt');
echo $form->errorSummary($model);
echo $form->labelEx($model,'column1');
echo $form->dropDownList($model
echo $form->error($model,'column1');
echo CHtml::ajaxSubmitButton('UpdateGrid',array('controller/grid'),
array('update'=>'#grid'),
$this->endWidget();
// you can render the 'default options' before any ajax update
$this->renderPartial('_grid',array($customColumns=>array('id','name'),'dataProvider'=>$dataProvider));
在_grid.php視圖文件:
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'grid',
'dataProvider'=>$dataProvider,
'columns' => $customColumns;
));
在控制器:
function actionGrid(){
// recover the form data, and build the custom columns array
$customColumns = array();
$customColumns[] = '.....';
$dataProvider = ...;
$this->renderPartial('_formTrabajo', array('customColumns' => $idSiniestro, 'dataProvider' => $dataProvider'), false);
}
當您單擊ajaxSubmitButton時,表單將被髮送到通過ajax指定的url,並且來自控制器的回覆必須包含包含網格的視圖的renderPartial,因此jQuery調用可以替換正確的HTML。您必須將數組從控制器傳遞到網格的局部視圖,並使用要顯示的自定義列列表。
謝謝,我想我明白了。 – Odinn
不客氣:) – sucotronic
你想用ajax,或在不同的頁面? – sucotronic
需要用ajax來做 – Odinn