I try Working with CGridView in Admin Panel but it doesn’t work.
This is my code:
Menu/Controller:
public function actionAjaxupdate()
{
$act = $_GET['act'];
if($act=='doSortOrder')
{
$sortOrderAll = $_POST['sortOrder'];
if(count($sortOrderAll)>0)
{
foreach($sortOrderAll as $menuId=>$sortOrder)
{
$model=$this->loadModel($menuId);
$model->sortOrder = $sortOrder;
$model->save();
}
}
}
else
{
$autoIdAll = $_POST['autoId'];
if(count($autoIdAll)>0)
{
foreach($autoIdAll as $autoId)
{
$model=$this->loadModel($autoId);
if($act=='doDelete')
$model->isDeleted = '1';
if($act=='doActive')
$model->isActive = '1';
if($act=='doInactive')
$model->isActive = '0';
if($model->save())
echo 'ok';
else
throw new Exception("Sorry",500);
}
}
}
}
view: menu/admin:
<?php $form=$this->beginWidget('CActiveForm', array(
'enableAjaxValidation'=>true,
)); ?>
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'menu-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array(
'id'=>'autoId',
'class'=>'CCheckBoxColumn',
'selectableRows' => '50',
),
'menuId',
'menuName',
array(
'name'=>'sortOrder',
'type'=>'raw',
'value'=>'CHtml::textField("sortOrder[$data->menuId]",$data->sortOrder,array("style"=>"width:50px;"))',
'htmlOptions'=>array("width"=>"50px"),
),
array(
'name'=>'isActive',
'header'=>'Active',
'filter'=>array('1'=>'Yes','0'=>'No'),
'value'=>'($data->isActive=="1")?("Yes")<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' />"No")'
),
array(
'class'=>'CButtonColumn',
),
),
)); ?>
<script>
function reloadGrid(data) {
$.fn.yiiGridView.update('menu-grid');
}
</script>
<?php echo CHtml::ajaxSubmitButton('Filter',array('Menu/ajaxupdate'), array(),array("style"=>"display:none;")); ?>
<?php echo CHtml::ajaxSubmitButton('Activate',array('Menu/ajaxupdate','act'=>'doActive'), array('success'=>'reloadGrid')); ?>
<?php echo CHtml::ajaxSubmitButton('In Activate',array('Menu/ajaxupdate','act'=>'doInactive'), array('success'=>'reloadGrid')); ?>
<?php echo CHtml::ajaxSubmitButton('Delete',array('menu/ajaxupdate','act'=>'doDelete'), array('success'=>'reloadGrid')); ?>
<?php echo CHtml::ajaxSubmitButton('Update sort order',array('Menu/ajaxupdate','act'=>'doSortOrder'), array('success'=>'reloadGrid')); ?>
<?php $this->endWidget(); ?>
Anybody help me?