What is solution for delete all button?

I used CGridView for my list.

I idea is that I need button "delete all", if so what is solution ?

list.php:




<?php

	$this->widget('application.modules.admin.components.TCGridView',array(

		'dataProvider'=>$model->search(),

		'filter'=>$model,

		'htmlOptions'=>array(

			'class'=>'comUserList',

		),

		'columns'=>array(

			array(

				'header'=>'#',

				'value'=>'$this->grid->dataProvider->pagination->currentPage*$this->grid->dataProvider->pagination->pageSize + $row+1',

				'htmlOptions'=>array('class'=>'number'),

			),

			/*

			array(

		                'class'=>'CCheckBoxColumn',

                		'headerHtmlOptions'=>array(),

		                'checkBoxHtmlOptions'=>array('class'=>'checkBox','name'=>'cid[]'),

			),

			*/

			array(

				'id'=>'comUserListUserNameColumn',

				'name'=>'username',

				'type'=>'raw',

				'value'=>'CHtml::link(CHtml::encode($data->username),array(\'user/update\',\'id\'=>$data->id),array(\'title\'=>CHtml::encode($data->username)))',

				'filter'=>CHtml::activeTextField($model, 'username', array(

					'id'=>false,

					'class'=>'text',

				)),

			),

			array(

				'name'=>'level',

				'value'=>'($data->level==1)?Yii::t(\'adminModule.comUser\',\'Super Administrator\')<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' />($data->level==2)?Yii::t(\'adminModule.comUser\',\'Administrator\')<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/sad.gif' class='bbc_emoticon' alt=':(' />($data->level==3)?Yii::t(\'adminModule.comUser\',\'Manager\'):Yii::t(\'adminModule.comUser\',\'Member\')))',

				'filter'=>CHtml::activeDropDownList($model,'level', array(

					1=>Yii::t('adminModule.comUser','Super Administrator'),

					2=>Yii::t('adminModule.comUser','Administrator'),

					3=>Yii::t('adminModule.comUser','Manager'),

					4=>Yii::t('adminModule.comUser','Member'),

				),array(

					'id'=>false,

					'class'=>'select',

					'prompt'=>'- - '.Yii::t('adminModule.common','Select All').' - -',

				)),

			),

			array(

				'header'=>Yii::t('adminModule.comUser','Check Status'),

				'name'=>'publish',

				'type'=>'raw',

				'value'=>'($data->publish==1)?CHtml::link(Yii::t(\'adminModule.comUser\',\'Publish\'),array(\'user/unpublish\',\'id\'=>$data->id),array(\'title\'=>Yii::t(\'adminModule.comUser\',\'Publish\'))):CHtml::link(Yii::t(\'adminModule.comUser\',\'Un-Publish\'),array(\'user/publish\',\'id\'=>$data->id),array(\'title\'=>Yii::t(\'adminModule.comUser\',\'Un-Publish\')))',

				'filter'=>CHtml::activeDropDownList($model, 'publish', array(

					0=>Yii::t('adminModule.comUser','Publish'),

					1=>Yii::t('adminModule.comUser','Un-Publish'),

				),array(

					'id'=>false,

					'class'=>'select',

					'prompt'=>'- - '.Yii::t('adminModule.common','Select All').' - -',

				)),

			),

			array(

				'name'=>'createTime',

				'value'=>'Yii::app()->dateFormatter->format(Yii::app()->locale->getDateFormat(),Yii::app()->controller->gmt_to_local($data->createTime))',

				'filter'=>false,

				'htmlOptions'=>array('class'=>'date'),

			),

			array(

				'name'=>'updateTime',

				'value'=>'Yii::app()->dateFormatter->format(Yii::app()->locale->getDateFormat(),Yii::app()->controller->gmt_to_local($data->updateTime))',

				'filter'=>false,

				'htmlOptions'=>array('class'=>'date'),

			),

			array(

				'id'=>'comUserListOptionColumn',

				'header'=>Yii::t('adminModule.common','Option'),

				'class'=>'CButtonColumn',

				'template'=>'{update} {delete}',

				'buttons'=>array(

					'update'=>array(

						'imageUrl'=>false,

						'options'=>array('class'=>'optionUpdate'),

					),

					'delete'=>array(

						'imageUrl'=>false,

						'options'=>array('class'=>'optionDelete'),

					),

				),

				'headerHtmlOptions'=>array('class'=>NULL),

			),

		),

	));

?>



TCGridView.php




class TCGridView extends CGridView

{

	/**

	 * @var interger whether the number of items in each page

     */

	public $statePageSize;

    

    /**

     * @var string the CSS class name for the state page size container. Defaults to 'statePageSize'.

     */

	public $statePageSizeCssClass='statePageSize';

    

    /**

     * Initializes the CGridView view.

     * This method will initialize required property values pageSize

     */

	public function init()

	{

		$this->standardConfig();        

		parent::init();

	}

    

    /**

     * This method will load standard config.

     */

	private function standardConfig()

	{

		$this->dataProvider->pagination->pageSize=$this->getStatePageSize();

		$this->filterPosition='header';

        

		$this->summaryCssClass='summaryTableList';

		$this->itemsCssClass='tableList';

		$this->pagerCssClass='Paging';

		//$this->filterCssClass='filters'; // $this->filterCssClass C-A-N-'-T NULL

        

		$this->cssFile='admin/classic/css/tableList.css';

        

		$this->pager=array(

			'class'=>'CLinkPager',

			'htmlOptions'=>array(

				'class'=>FALSE,

				'id'=>'paging'.$this->id

			),

			'maxButtonCount'=>11,

			'cssFile'=>'admin/classic/css/pagers.css',

			'header'=>FALSE,

		);

        

		$this->selectableRows=$this->getStatePageSize();

        

		$this->template='{items}{statePageSize}{summary}{pager}';

        

		// All config loaded, now to js for it.

		Yii::app()->clientScript->registerScript(__CLASS__.'#'.$this->id,<<<EOD

			jQuery('#statePageSize{$this->id}').live('change', function() {

				jQuery.fn.yiiGridView.update('{$this->id}',{ data:{ statePageSize{$this->id}: jQuery(this).val() }});

			});

EOD

		,CClientScript::POS_READY);

	}

    

    /**

     * @return integer whether the number of items in each page

     */

	public function getStatePageSize()

	{

		$var=intval($_GET['statePageSize'.$this->id]);

		if($var<=0)

			$var=Yii::app()->params['pageSize'];

		$this->setStatePageSize($var);

                    

		return $this->statePageSize;

	}


    /**

     * @param integer $value number of items in each page

     */

	public function setStatePageSize($value)

	{

		$this->statePageSize=intval($value);

	}

    

    /**

     * Renders the drop down state page size

     */

	public function renderstatePageSize()

	{

		echo '<div class="'.$this->statePageSizeCssClass.'">';

		echo CHtml::dropDownList('statePageSize'.$this->id, $this->getStatePageSize(), array(10=>10,15=>15,20=>20,25=>25,30=>30,50=>50,100=>100), array('class'=>'select'));

		echo '</div>';

	}

}



Thanks

I normally create a footer on my custom grids that has a dropdown list with ‘batch actions’ : ‘select all - un-select all - delete all’. Those are triggered with its ‘onchange’ javascript event and then I, depending on the action, perform the Javascript procedure to that selected action.

Thanks, I will trying it.