Yii Framework Forum: CGridView - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

CGridView

#1 User is offline   abedi98 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 86
  • Joined: 29-August 11

Posted 05 August 2012 - 02:56 AM

سلام
من میخوام از این ویجت به عنوان یک
helper
در برنامم استفاده کنم که هر جا خواستم بتونم ازش به راحتی استفاده کنم ، بدون زدن کدهای تکراری

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


class Helpers
{

	public function dataList($tbl_name)
	{
		$dataProvider=new CActiveDataProvider($tbl_name);
		
		$this->widget('zii.widgets.grid.CGridView', array(
			    'dataProvider'=>$dataProvider,
			    'columns'=>array(
				'id',
				'name',
				'ordering',
				'position',
				'published',
					array(
				'class'=>'CButtonColumn',
				'template'=>'{update}',
				'buttons'=>array(
					'update'=>array(
							'url'=>'$this->grid->controller->createUrl("default/editForm", array("id"=>$data->id))',
							'click'=>'function(){$("#cru-frame").attr("src",$(this).attr("href")); $("#cru-dialog").dialog("open");  return false;}',
								'visible'=>'($data->id===null)?false:true;'
							),
					
		 
				),
			),
		)
		)
		);
	}
}


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

Helpers::dataList('Users'); // مدل یوزرمو با تمام دیتا ها و .. نمایش میده



مشکل اینجاس که در کلاس
Helpers
و اون تابعی که نوشتم یک آرایه وجود داره که نام فیلد اون مدلی که قرار نمایش داده بشه رو باید بنویسیم
که مشکل اینجاست که احتمال یکی نبودن نام فیلد های یک جدول خیلی خیلی زیاد است.

راه حلی برای این کار میخواستم

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

0

#2 User is offline   Ali Borjian 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 367
  • Joined: 19-January 11

Posted 05 August 2012 - 03:30 AM

View Postabedi98, on 05 August 2012 - 02:56 AM, said:

مشکل اینجاست که احتمال یکی نبودن نام فیلد های یک جدول خیلی خیلی زیاد است



شما این helper رو برای جدولی نوشتید که فیلدهاش توی helper تعریف شده آیا می خواید این helper رو عمومیت ببخشید و برای هر جدول دیگه ای از همین استفاده کنید با مشکل چیز دیگه ای هست؟





0

#3 User is offline   abedi98 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 86
  • Joined: 29-August 11

Posted 05 August 2012 - 03:38 AM

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

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

و مشکل دادن همین فلید ها به این بخش از helper است :

$this->widget('zii.widgets.grid.CGridView', array(
                            'dataProvider'=>$dataProvider,
                            [b]'columns'=>array(
                                'id',
                                'name',
                                'ordering',
                                'position',
                                'published',[/b]

0

#4 User is offline   naser 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 85
  • Joined: 30-October 09
  • Location:tehran - Iran

Posted 05 August 2012 - 04:04 AM

خوب میتونی column ها رو به صورت پارامتر دوم بفرستی به متدت

ولی من ترجیح میدم تز همون widget استفاده کنم چون config هایی بیشتری رو داره که میتنونی گریدت رو کاستومایز کنی


class Helpers
{

        public function dataList($tbl_name, $columns=array())
        {
                $dataProvider=new CActiveDataProvider($tbl_name);
                
                $this->widget('zii.widgets.grid.CGridView', array(
                            'dataProvider'	=> $dataProvider,
                            'columns'		=> $columns
                            
                );            
        }
}

2

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users