TActiveButton

TActiveButton adalah kontrol aktif selain TButton. Ketika TActiveButton diklik pada permintaan postback normal, permintaan callback yang diinisiasi. Event OnCallback dimunculkan selama permintaan callback dan dimunculkan setelah event OnClick.

Ketika properti ActiveControl.EnableUpdate adalah true, mengubah properti Text selama permintaan callback akan memutakhirkan judul tombol pada sisi-klien.

Karena event OnCallback hanya dimunculkan selama permintaan callback, pengendali event OnCallback bisa dipakai untuk menangani logika terutama yang terkait dengan permintaan callback. Pengendali event OnClick dimunculkan kapan saja tombol diklik, meskipun javascript dimatikan.

Contoh berikut menggunakan kedua event OnClick dan OnCallback dari TActiveButton.

Diagram Kelas TActiveButton

Diagram kelas untuk TActiveButton diilustrasikan dalam gambar berikut. Banyak kontrol aktif yang melakukan permintaan callback mempunyai struktur yang mirip.

class="figure" alt="TActiveButton class diagram" title="Diagram kelas TActiveButton" />

TActiveButton adalah ekstensi dari TButton dan mengimplementasikan dua antarmuka tambahan ICallbackEventHandler dan IActiveControl. TActiveButton berisi turunan dari TBaseActiveCallbackControl yang tersedia melalui properti ActiveControl dari TActiveButton. Contoh berikut menyetel parameter callback atas TActiveButton saat permintaan callback ditampung.

<com:TActiveButton Text="Click Me" OnCallback="button_callback" ActiveControl.CallbackParameter="value" />

Dalam metode pengendali event OnCallback, CallbackParameter tersedua di dalam obyek $param.

public function button_callback($sender, $param) { echo $param->CallbackParameter; //mengeluarkan "value" }

Menambah Perilaku Sisi Klien

Di dalam properti ActiveControl adalah turunan dari TCallbackClientSide yang tersedia sebagai ClientSide dari TActiveButton. Properti ClientSide berisi sub-properti, serperti RequestTimeOut, dan pengendali event javascript sisi-klien, seperti OnLoading, dipakai oleh sisi-klien saat membuat permitaan callback. Contoh berikut mendemonstrasikan menghidup matikan indikator "loading" saat sisi-klien membuat permintaan callback.

<com:TClientScript PradoScripts="effects" /> Loading... <com:TActiveButton Text="Click Me" OnCallback="button_callback" ActiveControl.CallbackParameter="value" > <prop:ClientSide OnLoading="Element.show('callback_status')" OnComplete="Element.hide('callback_status')" /> </com:TActiveButton>

Contoh ini mengambil librari javascript "effects" menggunakan komponen TClientScript. Nilai properti ClientSide.OnLoading berisi pernyataan javascript yang menggunakan librari "effects" untuk menampilkan tag span "Loading...". Hal yang mirip, nilai properti ClientSide.OnComplete berisi pernyataan javascript yang menyembunyikan tag span "Loading...". Lihat TCallbackClientSide untuk rincian lebih jelas pada detil properti sisi-klien.