plugin jQuery tidak tampil ketika menggunakan renderPartial

Dear temen2 forum,

ane coba menggunakan renderPartial() untuk implementasi aplikasi menggunakan AJAX,

tapi anehnya jQuery plugin seperti datepicker, menjadi tidak berfungsi, apa masalahnya? dan adakah temen2 yang tau solusinya ?

thanks in advance.

:)

parameter processOutputnya di set jadi true

http://www.yiiframework.com/doc/api/1.1/CController#renderPartial-detail

contoh




$this->renderPartial('index', array(), false, true);



ini makenya harus lebih hati2 kalo renderPartialnya pake submit Ajax yang nantinya ngegantiin is container itu dengan hasil renderPartial lagi :P

wah makasih banyak ya mas, jadi bisa sekarang. Btw, kalau aku debug menggunakan firebug, saat menggunakan datepicker, jqgrid, ctree, banyak sekali library yang diload bahkan berulang2… jadi bikin lemot. buat agan2 yang tau… yuuu mari bantu lapak ane gan… :)

setau ane processOutput bakal menginclude ulang script file, makanya script dalam renderPartial baru jalan…

tapi gak tau sih, itu hanya sebatas pengamatan, karena ane tiap kali set true pada itu, dia bakal keluar gitu…

ini…

nunggu versi Yii berikutnya :D

setelah ane cek, klo menggunakan plugin jquery, scr otomatis library js yg d perlukan muncul di assets. Heranya, file2 yg udah ada ditambahkan lagi. Shg, dlm folder di dlm assets kt bisa menemukan file2 yg sama. (ane pake 1.6). Entah ini sebabnya atau bukan, pas ane cek utk menampilkan 1 jqgrid, ane perlu load file2 jquery hingga 11 MB (kebayang Lola nya). dear forum, you are best (t4 rujukan ane satu2nye yg bs diandalin) ! Adakah yg mau buat small example ajax dg 3 div Dimana salah satunya dg ajaxsubmit ? Atau apa solusi dr permasalahan ane? Tadinya ane kira renderPartial is help enough, but it didn’t.

ada apa dg versi brkutny? Apa yg menarik bagi agan? Regards.

yang ane lakukan juga cara agan… :( , maklum pengetahuan seperti ini masih belajar2 juga :)

kalau jqgrid, itu besar karena extensionnya sendiri sih udah besar menurut ane.

bayangkan sebelum install extension jqgrid, sudah harus install extension jquery ui khusus.

jadi menurut ane sih emang bakal loading banyak file sih, extension yang satu ini…

yang kasus asset, maksudnya file yang sama di direktori berbeda?

Itu memang sengaja dilakukan begitu di karenakan beberapa widget/controller yang berbeda yang pakai (terutama extension pihak ketiga). Misalnya widget ini pakai js ini, widget yang itu pakai file js ini juga.

Takutnya suatu hari salah satu widget butuh js yang beda, maka hanya js yang bersangkutan berubah. Itu sebabnya setiap widget/controller memiliki folder asset tersendiri. Biar nggak kecampur…

Tetapi kalau masalah loading, setau ane, Yii cukup pintar untuk tidak load 2 file javascript yang sama dalam 1 halaman. Sehingga file ganda ini hanya makan capacity tapi tidak membuat loading lama…

Dulu pernah kena masalah ini sih,

kalo ngeliat-liat di forum ini juga (di bagian yg englishnya) ada juga yg ngeposting solusinya, tapi jelas gak berlaku buat semua kasus (terutama yg pake widget2 extension)

cara tacklenya secara umum dengan ngegantiin komponen clientScript nya dengan class hasil ngeextends CClientScript, ntar algoritma registernya pake heuristic kita aja, kapan js tertentu mesti di load, kapan enggak,

:)

makanya liat dulu kasusnya sih

oke, ane re post kasus ane lagi ya gan, tema aplikasi adalah laporan, jadi intinya view nya sbb (dalam satu view) :


|header___|

|_______________________|

|tree___|periode______|

|tree___|periode______|

|tree___|periode______|

|tree___|output_______|

|tree___|output_______|

|tree___|output_______|

|tree___|output_______|

  • di tree, ada nama2 laporan yang memiliki id

  • id itu dikirim ke controller untuk di filter mana yang perlu input periode dan mana yang tidak, jika perlu input periode, maka dengan renderPartial ane tampilkan kembali view dengan penambahan form input periode,

  • setelah di submit menggunakan ajaxSubmitButton, id dan periode di kirimkan kembali ke controller, lalu dengan controller renderPartial lagi untuk menampilkan jqgrid

mekanisme ini udah ane buat, nah yang jadi soal saat ajaxSubmitButton di klik, library di load dan banyak (bahkan looping), jadinya lolaaaaaaaaa :(. Setelah ane amati, saat button itu di klik, event yang ditangkap terjadi bisa langsung 1,2,3,4,5,6 kali. Sehingga terjadi pengulangan load library(assets) dan jqgrid menampilkan data kemudian data hilang lagi dari jqgrid sebanyak 1,2,3,4,5,6 kali hingga akhirnya data muncul, tergantung event yang ditangkap pada saat klik ajaxSubmitButton.

Ane lampirkan print screen apa saja yang diload.

for your helps and ideas, thanks in advance.

kalo misalnya yang didalam partial view itu gak usah pake widget gimana?

jadi langsung declare si javascriptnya,

misal kalo untuk CJUIAutoComplete, gak usah pake declare widget, tapi cukup declare




<script>

<![CDATA[

jQuery("#element").autocomplete();

]]>

</script>



ok thank u gan, setelah kuriling2, ternyata sementara ini ane simpulkan bahwa ajaxSubmitButton yang bikin error, ane selesaikan dengan cara membuat button biasa dan menggunakan mekanisme AJAX jquery. Dan berhasil.

Tapi mungkin bisa jadi cara di atas suatu saat dicoba, untuk mendapatkan best performance. :)

iya, mendingan gitu :D

ketimbang dikembaliin hasil renderPartialnya,

kenapa gak ngembaliin result JSON aja :D