[ASK] Ubah Tampilan Tabel

Halo… para masta yii… :)

saya mau naya nih, saya mau ubah tampilan di yii, kalo saya liat codingnya secara default pake CListView untuk tampilannya terlampir, bagaimana caranya jika ingin saya ubah jadi tabel dengan judul fieldnya cukup satu saja seperti contoh dibawah ini.

======================================================

Prof | User | Dari | SMP | Jenis Track | Institusi |

======================================================

ini datanya

ini datanya

ini datanya

ini datanya

ini datanya

======================================================

di direktori protected/views/profesi/index.php

coding saya seperti ini




<?php 

// echo $model;


$this->widget('zii.widgets.CListView', array(

	'dataProvider'=>$dataProvider,

	'itemView'=>'_view',));

 

?>



saya ubah jadi seperti ini




<?php 

// echo $model;


$this->widget('zii.widgets.CGridView', array(

	'dataProvider'=>$dataProvider,

	'itemView'=>'_view',));

 

?>

Saya memanfaatkan CGridView… tapi ga bisa, hasilnya error… kenapa ya? (mohon bantuannya) ::)

setau saya CGridView gak punya property itemView deh,

maklum om masih asing nih sm yii :) , terus bagaimana cara menggunakannya CGridView adakah langkah-langkahnya?

saya pake coding ini alhamdulillah bisa




$this->widget('zii.widgets.grid.CGridView', array(

    'dataProvider'=>$dataProvider,

    'columns'=>array(

        'ProfID',

        'UserID',

        'Dari',

        'Smp',

        'JenisTrack',

        'InstitusiID',

        'Institusi',

        'PosisiPeran',

        'CatatanDanPrestasi',

        )

    )

);



Thanks om…

emang beda sih GRidview dan ListView, beda folder juga di Zii nya…

congrate bro kalo dan ketemu

Untuk tampilan emang udah bener sih, cuma ada masalah lagi ni om…

Kalo pake Listview ane kan kalo mau update tinggal klik ProfID-nya yang source codingnya ada di _ivew.php yang menggunakan class view seperti di bawah ni


<div class="view">


	<b><?php echo CHtml::encode($data->getAttributeLabel('ProfID')); ?>:</b>

	<?php echo CHtml::link(CHtml::encode($data->ProfID), array('view', 'id'=>$data->ProfID)); ?>

	<br />


	<b><?php echo CHtml::encode($data->getAttributeLabel('UserID')); ?>:</b>

	<?php echo CHtml::encode($data->UserID); ?>

	<br />


	<b><?php echo CHtml::encode($data->getAttributeLabel('Dari')); ?>:</b>

	<?php echo CHtml::encode($data->Dari); ?>

	<br />


	<b><?php echo CHtml::encode($data->getAttributeLabel('Smp')); ?>:</b>

	<?php echo CHtml::encode($data->Smp); ?>

	<br />


	<b><?php echo CHtml::encode($data->getAttributeLabel('JenisTrack')); ?>:</b>

	<?php echo CHtml::encode($data->JenisTrack); ?>

	<br />


	<b><?php echo CHtml::encode($data->getAttributeLabel('InstitusiID')); ?>:</b>

	<?php echo CHtml::encode($data->InstitusiID); ?>

	<br />


	<b><?php echo CHtml::encode($data->getAttributeLabel('Institusi')); ?>:</b>

	<?php echo CHtml::encode($data->Institusi); ?>

	<br />


	<?php /*

	<b><?php echo CHtml::encode($data->getAttributeLabel('PosisiPeran')); ?>:</b>

	<?php echo CHtml::encode($data->PosisiPeran); ?>

	<br />


	<b><?php echo CHtml::encode($data->getAttributeLabel('CatatanDanPrestasi')); ?>:</b>

	<?php echo CHtml::encode($data->CatatanDanPrestasi); ?>

	<br />


	<b><?php echo CHtml::encode($data->getAttributeLabel('KeySkills1')); ?>:</b>

	<?php echo CHtml::encode($data->KeySkills1); ?>

	<br />


	<b><?php echo CHtml::encode($data->getAttributeLabel('KeySkills2')); ?>:</b>

	<?php echo CHtml::encode($data->KeySkills2); ?>

	<br />


	*/ ?>


</div>

nah… sekarang setelah ane pake GridView, ProfIDnya tidak bisa diklik(ngelink) karena ambil data mentah langsung dr database, tidak ada modificate sedikitpun, gmn caranya ya biar ane bisa update…?

tambahin CButtonColumn aja,




$this->widget('zii.widgets.grid.CGridView', array(

    'dataProvider'=>$dataProvider,

    'columns'=>array(

        'ProfID',

        'UserID',

        'Dari',

        'Smp',

        'JenisTrack',

        'InstitusiID',

        'Institusi',

        'PosisiPeran',

        array(

            '   class'=>'CButtonColumn',

           ),

        )

    )

);



bisa juga ditambahin di columnya jadi




$this->widget('zii.widgets.grid.CGridView', array(

    'dataProvider'=>$dataProvider,

    'columns'=>array(

        array(

            'name' => 'ProfId',

            'type' => 'raw',

            'value' => 'CHtml::link(CHtml::encode($data->ProfID), array(\'view\', \'id\'=>$data->ProfID))',

        )

        'ProfID',

        'UserID',



setelah ane coba berhasil juga sih omm

tapi saya inginnya, misal login dgn username: TONO,

maka tombol itu hanya akan muncul pada data yng diinputkan oleh TONO sedangkan pada data yang bukan diinputkan oleh TONO maka tombol itu tidak ada.

Jadi intinya dia hanya bisa CRUD sesuai user accountnya(UserID).

Saya pake koding ini ga bisa ya… harusnya conditionnya gmn ya?? bingung nih.




$myuser = Yii::app()->user->id;

$this->widget('zii.widgets.grid.CGridView', array(

    'dataProvider'=>$dataProvider,

    'columns'=>array(

        'ProfID',

        'UserID',

        'Dari',

        'Smp',

        'JenisTrack',

        'InstitusiID',

        'Institusi',

        'PosisiPeran',

        'CatatanDanPrestasi',

		if(UserID==$myuser){

		array(

			'class'=>'CButtonColumn',

		),

		

		else{}



tolong yang udah tau, kasih solusinya donk… :-[ :(

saya senang sekali jika ada yang bersudi membanru

menurut saya seperti ini:


$kolom = array(

        'ProfID',

        'UserID',

        'Dari',

        'Smp',

        'JenisTrack',

        'InstitusiID',

        'Institusi',

        'PosisiPeran',

        'CatatanDanPrestasi');


		if(UserID==$myuser){

		$kolom[] = array(

			'class'=>'CButtonColumn',

		);

$myuser = Yii::app()->user->id;

$this->widget('zii.widgets.grid.CGridView', array(

    'dataProvider'=>$dataProvider,

    'columns'=>$kolom,

);

kayaknya mending,




$this->widget('zii.widgets.grid.CGridView', array(

    'dataProvider'=>$dataProvider,

    'columns'=>array(

        'ProfID',

        'UserID',

        'Dari',

        'Smp',

        'JenisTrack',

        'InstitusiID',

        'Institusi',

        'PosisiPeran',

        'CatatanDanPrestasi',

         array(

            'class'=>'CButtonColumn',

            'visible' => '$data->UserID == Yii::app()->user->id;',

         ),



atau kalo restriksinya cuman buat button delete sama update (yg viewnya boleh dilihat oleh user lain)




$this->widget('zii.widgets.grid.CGridView', array(

    'dataProvider'=>$dataProvider,

    'columns'=>array(

        'ProfID',

        'UserID',

        'Dari',

        'Smp',

        'JenisTrack',

        'InstitusiID',

        'Institusi',

        'PosisiPeran',

        'CatatanDanPrestasi',

         array(

            'class'=>'CButtonColumn',

            'buttons'  => array(

                'delete' => array(

                   'visible' => '$data->UserID == Yii::app()->user->id;',

                 ),

                'update' => array(

                   'visible' => '$data->UserID == Yii::app()->user->id;',

                 ),

             )

         ),



Iya, solusi om Petra lebih bagus menurut saya~

lebih rapi~

koding dari om petra


'visible' => '$data->UserID == Yii::app()->user->id;',

maaf


$data

itu variabel apa ya? :huh:

apakah yg dimaksud


$dataProvider

bukan…?

iya benul…

komponent item dari dataprovider itu di sebut nya $data, kayaknya setting otomatsnya yii…

liat di dokumentasinya

http://www.yiiframework.com/doc/api/1.1/CGridView

@ petra, junxiong & aqge: berhasil juga, Thanks jawaban dan informasinya dari masta-masta semua.

Semoga tidak bosan dengan pertanyaan2 dari ane.

Mantab…ini yang saya cari-cari dari kemarin. Thanks banget.