Tampilan Scaffold Rekaman Aktif

Kelas Rekaman Aktif dapat digunakan dengan dan ( mengaitkan TScaffoldListView dan TScaffoldEditView) untuk membuat aplikasi web Create/Read/Update/Delete (CRUD) sederhana.

Tampilan scaffold dimaksudkan untuk membantu dalam membuat prototipe aplikasi web, tidak didesain sebagai yang bisa dikustomisasi atau serumit komponen misalnya TDataGrid. Tampilan scaffold menyediakan fungsionalitas builtin:

Tampilan Scaffold berdiri sendiri pada Rekaman Aktif dan saat ini mendukung database: Mysql, Sqlite dan Postgres SQL. Dukungan untuk database lain dapat diputuskan bila ada permintaan yang cukup.

Menyiapkan Tampilan Scaffold

Untuk menggunakan tampilan scaffold, pertama kita mendefinisikan kelas Rekaman Aktif yang mewakili tabel atau view dalam database. Tetapkan kelas Rekaman Aktif berikut yang berkaitan dengan tabel users seperti didefinisikan dalam halaman Rekaman Aktif.

class UserRecord extends TActiveRecord { const TABLE='users'; public $username; public $email; }

Kelas tampilan scaffold ada di System.Data.ActiveRecord.Scaffold.* namespace. namespace ini bisa diimpor ke Konfigurasi Aplikasi menggunakan file application.xml atau melalui kode php menggunakan metode Prado::using(). Untuk mulai menggunakan cukup setel nilai properti RecordClass sama dengan nama kelas Rekaman Aktif.

<com:TScaffoldView RecordClass="UserRecord" />

Kode di atas akan mendaftar rekaman saat ini dalam tabel users. Setiap rekaman dapat diedit dengan mengklik tombol "edit" dan dihapus dengan mengklik tombol "delete". Rekaman baru bisa ditambahkan dengan mengklik pada tombol "Add new record", masukkan beberapa data (perhatikan validasi otomatis terhadap field dan tipe data yang diperlukan), dan klik tombol "save". Menetapkan batas pencarian dalam kotak teks cari guna menemukan rekaman tertentu. Akhirnya, daftar rekaman bisa disimpan pada setiap kolom dengan mengubah kolom pengurutan serta urutan.

TScaffoldView adalah kontrol template yang dibuat dari kontrol scaffold lainnya. Properti berikut memberikan akses ke kontrol gabungan ini.

Semua kontrol gabungan ini bisa dikustomisasi seperti yang akan kita lihat di bawah.

TScaffoldListView

Daftar Rekaman Aktif dapat ditampilkan menggunakan TScaffoldListView dengan properti berguna berikut.

Penyajian kustom dari Rekaman Aktif dapat dicapai dengan menetapkan properti ItemTemplate dan/atau AlternatingItemTemplate dari pengulang List. TScaffoldListView akan mendengarkan dua event perintah bernama "delete" dan "edit". Perintah "delete" akan menghapus rekaman untuk baris di mana perintah "delete" berasal. Perintah "edit" akan memaksa data rekaman untuk diedit oleh TScaffoldEditView dengan ID yang ditetapkan dengan properti EditViewID. Contoh berikut mendaftar nama pengguna hanya dengan format tebal.

<com:TScaffoldListView RecordClass="UserRecord" > <prop:List.ItemTemplate> <strong><%# $this->Data->username %></strong> </prop:List.ItemTemplate> </com:TScaffoldListView>
Info: Untuk TScaffoldView, tampilan daftar dapat diakses melalui properti ListView dari TScaffoldView. Selanjutnya, subproperti ListView.List.ItemTemplate pada TScaffoldView adalah sama dengan subproperti List.ItemTemplate dari TScaffoldListView dalam contoh di atas.

Properti SearchCondition dan properti SearchParameters (mengambil nilai array) bisa ditetapkan untuk mengkustomisasi rekaman yang ditampilkan. SearchCondition akan dipakai sebagai properti Condition dari TActiveRecordCriteria dan properti SearchParameters berkaitan dengan properti Parameters dari TActiveRecordCriteria.

TScaffoldEditView

<com:TScaffoldEditView RecordPk="user1" RecordClass="UserRecord" />

Menggabungkan tampilan daftar + edit

<com:TScaffoldEditView ID="edit_view" RecordClass="UserRecord" /> <com:TScaffoldListView EditViewID="edit_view" RecordClass="UserRecord" />

Mengkustomisasi TScaffoldView

<com:TScaffoldView RecordClass="UserRecord" > <prop:ListView.List.ItemTemplate> <%# $this->DataItem->username %> <com:TLinkButton Text="Edit" CommandName="edit" /> </prop:ListView.List.ItemTemplate> </com:TScaffoldView/>
$Id: Scaffold.page 1902 2007-05-07 04:17:37Z wei $