Yii Framework Forum: [ask] filter CGridview yang menggunakan CArrayDataProvider - Yii Framework Forum

Jump to content

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

[ask] filter CGridview yang menggunakan CArrayDataProvider Rate Topic: -----

#1 User is offline   ressaince 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 163
  • Joined: 10-January 11
  • Location:Jakarta

Posted 14 April 2011 - 04:01 AM

halo kawan-kawan..
wah dah lama aku tak posting disini..
saya mau nanya nih..

gimana caranya mengaktifkan filter bila kita menggunakan CArrayDataProvider sebagai dataProvidernya?
filter attribute di CGridview memang harus CModel.
untuk itu pasti kita perlu Membuat CModel.
saya sudah membuatnya dan filter nya udah muncul berupa textbox,tapi tetap ga bisa memfilternya.
ada yang tahu caranya?
udah nyari2 belum ketemu caranya nih.. T_T

bantu ya..
NB: saya tidak bisa menggunakan CActiveDataProvider karena datanya harus dipanggil melalui stored procedure..
take it or leave it
0

#2 User is offline   petra 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 218
  • Joined: 20-June 10

Posted 15 April 2011 - 03:47 AM

ternyata TS nanya di thread di bawah ini juga toh :D

http://www.yiiframew...aydataprovider/

ntar kalo udah berhasil disharing2 yah :P
0

#3 User is offline   ressaince 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 163
  • Joined: 10-January 11
  • Location:Jakarta

Posted 15 April 2011 - 04:12 AM

hahahhaa tahu aja.. :lol:
jadi malu nih hahahah..

setelah beberapa percobaan bisa sih,hehe
nanti deh di share kalo sempet, lagi banyak kerjaan..
take it or leave it
0

#4 User is offline   aqge 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 188
  • Joined: 02-September 10
  • Location:Indonesia

Posted 19 April 2011 - 11:10 PM

View Postressaince, on 15 April 2011 - 04:12 AM, said:

hahahhaa tahu aja.. :lol:
jadi malu nih hahahah..

setelah beberapa percobaan bisa sih,hehe
nanti deh di share kalo sempet, lagi banyak kerjaan..



ane baru tahu adan CArrayDataprovider....
sharing sharing dong gan ini tentang apa dan baiknya kapan dipake..
Best Regard
Tidak ada coding yang salah
Yang ada hanyalah Coding yang lebih baik
0

#5 User is offline   ressaince 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 163
  • Joined: 10-January 11
  • Location:Jakarta

Posted 20 April 2011 - 01:20 AM

CArrayDataProvider itu data provider yang berupa array,,
ini digunakan kalo keadaannya ga memungkinkan untuk agan menggunakan CActiveDataProvider karena 1 dan lain hal,
contohnya agan datanya cuma bisa diambil lewat stored procedure..
nah CGridView dianjurkan menggunakan CActiveDataProvider karena lebih mudah melakukan filternya.
sebenernya data input user itu diproses di search() yang kita miliki didalam CActiveRecord kita, kemudian dikembalikanlah CActiveDataProvider baru yang kemudian ditampilkan lagi.

public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('id',$this->id);
		$criteria->compare('serial_number',$this->serial_number,true);
		$criteria->compare('chasis_number',$this->chasis_number,true);
		
		$criteria->compare('cust_loc_id',$this->cust_loc_id);
		$criteria->compare('prodel_detail_id',$this->prodel_detail_id);

		return new CActiveDataProvider(get_class($this), array(
			'criteria'=>$criteria,
		));
	}

setelah melakukan beberapa eksperimen akhirnya saya menemukan bahwa CGridView itu akan merequest action yang sama setiapkali dilakukan input pada filter, dapat dicek dengan isset($_GET["ajax"])..

jadi apabila kita menggunakan CArrayDataProvider, kita cukup mencocokkan inputnya dengan array kita,membuat array baru kemudian mengirimkan array baru tersebut dalam bentuk CArrayDataProvider dengan renderPartial halaman yang terdapat CGridview kita.



yah mudah-mudahan ngerti,kalo kurang jelas nanti saya jawab lagi beserta contoh kodenya
take it or leave it
0

#6 User is offline   aqge 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 188
  • Joined: 02-September 10
  • Location:Indonesia

Posted 20 April 2011 - 11:47 PM

View Postressaince, on 20 April 2011 - 01:20 AM, said:

CArrayDataProvider itu data provider yang berupa array,,
ini digunakan kalo keadaannya ga memungkinkan untuk agan menggunakan CActiveDataProvider karena 1 dan lain hal,
contohnya agan datanya cuma bisa diambil lewat stored procedure..
nah CGridView dianjurkan menggunakan CActiveDataProvider karena lebih mudah melakukan filternya.
sebenernya data input user itu diproses di search() yang kita miliki didalam CActiveRecord kita, kemudian dikembalikanlah CActiveDataProvider baru yang kemudian ditampilkan lagi.

public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('id',$this->id);
		$criteria->compare('serial_number',$this->serial_number,true);
		$criteria->compare('chasis_number',$this->chasis_number,true);
		
		$criteria->compare('cust_loc_id',$this->cust_loc_id);
		$criteria->compare('prodel_detail_id',$this->prodel_detail_id);

		return new CActiveDataProvider(get_class($this), array(
			'criteria'=>$criteria,
		));
	}

setelah melakukan beberapa eksperimen akhirnya saya menemukan bahwa CGridView itu akan merequest action yang sama setiapkali dilakukan input pada filter, dapat dicek dengan isset($_GET["ajax"])..

jadi apabila kita menggunakan CArrayDataProvider, kita cukup mencocokkan inputnya dengan array kita,membuat array baru kemudian mengirimkan array baru tersebut dalam bentuk CArrayDataProvider dengan renderPartial halaman yang terdapat CGridview kita.



yah mudah-mudahan ngerti,kalo kurang jelas nanti saya jawab lagi beserta contoh kodenya




[filter]->[controller(lewat ajax/not)]->[model]->[jadi CativedataProvider]->[view]

kalo yang Array tadih gimana gan...
Best Regard
Tidak ada coding yang salah
Yang ada hanyalah Coding yang lebih baik
0

#7 User is offline   ressaince 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 163
  • Joined: 10-January 11
  • Location:Jakarta

Posted 22 April 2011 - 02:46 AM

nah kalo yang array, caranya kita buat CFormModel,taro atribut-atributnya yang ada diarray kita tersebut..
nah waktu membuat gridview : "'filter'=>$model"
sehingga nanti muncul textboxnya..
terus kita bisa ambil input usernya dicontroller lewat $_GET
nah dari $_GET tersebut saya langsung compare dengan isi arraynya
misal : kamu isi textbox x, nah saya compare array[x] dengan isi $_GET[x] menggunakan strpos
kalo cocok simpan seluruh nilai array tersebut ke array baru..

sesudah itu kita kirim CArrayDataProvider dengan array baru hasil compare tersebut trus renderPartial..
jadi deh...
take it or leave it
0

#8 User is offline   meechamp 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 10-December 13

Posted 06 January 2014 - 11:41 PM

View Postressaince, on 22 April 2011 - 02:46 AM, said:

nah kalo yang array, caranya kita buat CFormModel,taro atribut-atributnya yang ada diarray kita tersebut..
nah waktu membuat gridview : "'filter'=>$model"
sehingga nanti muncul textboxnya..
terus kita bisa ambil input usernya dicontroller lewat $_GET
nah dari $_GET tersebut saya langsung compare dengan isi arraynya
misal : kamu isi textbox x, nah saya compare array[x] dengan isi $_GET[x] menggunakan strpos
kalo cocok simpan seluruh nilai array tersebut ke array baru..

sesudah itu kita kirim CArrayDataProvider dengan array baru hasil compare tersebut trus renderPartial..
jadi deh...




Maaf gan, saya boleh tanya tidak, agak berbeda tapi masih berkaitan dengan CArrayDataProvider,
saya ingin menampilkan CgridView dari data json yang saya dapat, kira2 apa langkah yang perlu saya lakukan?
mohon pencerahannya gan, thanks a lot
0

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