مشکل در Cgridview

[size="3"][font="Tahoma"][right]

سلام

من به یک مشکلی در این ویجت برخردم

این کدم من هستش:

[/right]




array(

            'class' => 'CButtonColumn',

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

            'buttons'=>array(

                'active'=>array(

                    'url'=>'"javascript:void(0)"',

                    'label'=>'Active',

                    'imageUrl'=>Yii::app()->baseUrl.'/img/active.png',

                    'options'=>array("id"=>"column_GridView","class"=>'$data->id'),

                    'click'=>'js: active($data->id)',

                    'visible'=>'$data->published == 0',

                    

                ),



[right]

مشکل من اینه که

$data->published

در visible به خوبی کار میکنه

ولی هرکاری میکنم کلاس برای دکمه مورد نظر تعریف میکنم با $data->id

اصلا مقدار بهم نمیده

حتی توی active($data->id) هم بهم مقدار نمیده

یعنی خود کلمه $data->id رو واسم چاپ میکنه به جای آی دی مورد نظر

ممنون میشم راهنمایی کنید

[/right][/font][/size]

[rtl]کد زیر را امتحان کنید ببینید درست میشه؟

$model همان dataProviderای است که از کنترلر به ویو فرستادید.[/rtl]




'options'=>array("id"=>"column_GridView","class"=>$model->id),



[right]

[font="Tahoma"]

نه دوست عزیز اینارو همه تست کردم

not defined میزنه

[/font]

[/right]

[right]فکر کنم این جواب بده اگه نداد بگو ، حتما یه راه پیدا میکنم براش[/right]


'options'=>function($data) use ($model) {

                                        return  array("id"=>"column_GridView","class"=>$data->id);

},

[right]البته فکر کنم اصولیتر باشه که جای آیدی و کلاستو عوض کنی [/right]

[right][rtl]

[font="Tahoma"]در کلاس CButtonColumn فقط میتونید برای گزینه های url و visible از متغیر $data یا هر کد phpای استفاده کنید

برای اینکه بقیه هم این قابلیت رو داشته باشند باید خودتون یک کلاس بنویسید و از CButtonColumn ارث ببرید

این ویکی رو بخونید[/font]

[/rtl]

[/right]