「カスタム列」の機能を追加するソリューションを探していました...つまり、ユーザーに表示できる列のリストを提示し、ユーザーは見たい列を選択し、選択後にテーブルが更新されて追加されます/必要な列を削除します。
Google で何も見つかりませんでした (おそらく、私が探していたものとは異なる名前が付けられています...)
誰もがそれを達成する方法についてアイデアを持っていますか?
前もって感謝します!
「カスタム列」の機能を追加するソリューションを探していました...つまり、ユーザーに表示できる列のリストを提示し、ユーザーは見たい列を選択し、選択後にテーブルが更新されて追加されます/必要な列を削除します。
Google で何も見つかりませんでした (おそらく、私が探していたものとは異なる名前が付けられています...)
誰もがそれを達成する方法についてアイデアを持っていますか?
前もって感謝します!
これは完全なサンプルではありませんが、実装方法の手がかりを得ることができます。グリッドのレンダリング方法に関するデータを収集するために、何らかのフォームを定義する必要があります。入力フィールドが 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 を正しく置き換えることができます。表示する列のカスタム リストを使用して、コントローラーからグリッドの部分ビューに配列を渡す必要があります。