Gridview آموزش: استفاده از تابع در مقدار ستون - مخصوص

[font="Tahoma"][rtl]

سلام،

من می خواستم تو لیست پست ها اون پست هایی که کامنت دارند رو براشون یه باتن بزارم و تعداد کامنت هارو توش نشون بدم

اولا می خواستم بجای لیبل باتن اون مقدار خودم رو بزارم و ثانیا اگه مقدار برابر صفر بود اصلا باتن رو قرار ندم

اگه بخواید از GridView استفاده کنید این مطلب به درد می خوره

داخل GridView به عنوان ستون دارید:

[/rtl][/font]




		array(

			'name' => 'post_comments',

			'header' => 'Post Comments',

			'value' => 'btnWidget(

				$data->post_comment, 

				Yii::app()->controller->createUrl("commentlist",array("id"=>$data->post_id))

			)',

			'filter' => false,

			'type' => 'html',

		),



[font="Tahoma"][rtl]

با فرض اینکه relationی به نام post_comment وجود داشته باشه که همون تعداد کامنت های یک پست می شه

و اکشنی به نام commentlist برای لیست کردن کامنت های مربوط به پست مقادیر را به تابع می دهیم

و تابع:

[/rtl][/font]




function btnWidget($num, $comment_url){


    $widget = new CWidget();

    if ($num > 0){

	return $widget->widget('bootstrap.widgets.TbButtonGroup', array(

            'buttons'=>array(

                'comments' => array(

                    'label'=>"$num",

		    'url' => "$comment_url",

                    'options'=>array('class'=>'btn btn-small'),

                ),

            ),

	    ), true) ;

	}else{

	   return 0;

	}

}



[font="Tahoma"][rtl]البته نهایتا به هر روش که دوست دارید می تونین از ajax یا بدون ajax اون url که برا باتن گذاشتین رو کنترل کنید[/rtl][/font]