TDataList

TDataList mewakili ikatan data dan kontrol list yang bisa dimutakhirkan. Seperti TRepeater, TDataList menampilkan kontennya secara berulang berdasarkan data yang diambil dari DataSource. Kontek yang diulang dalam TDataList disebut item, yang adalah kontrol dan bisa diakses melalui Items. Ketika dataBind() dipanggil, TDataList membuat sebuah item untuk setiap baris data dan mengikat baris data ke item. Secara opsional, TDataList dapat mempunyai header, footer dan/atau pemisah antara item.

TDataList berbeda dari TRepeater yakni memperkenalkan konsep kondisi item dan membolehkan menerapkan gaya berbeda ke item dalam kondisi berbeda. Sebagai tambahan, TDataList mendukung pengotakan item berulang dalam berbagai cara.

Tata letak dari konten yang diulang dalam TDataList ditetapkan dengan template inline. Item TDataList, header, footer, dll. diturunkan dengan template terkait saat data sedang diikat ke pengulang.

Sejak v3.1.0, tata letak juga dapat berupa penyaji. Penyaji adalah kelas kontrol yang dapat diturunkan sebagai item datalist, header, dll. Penyaji dapat dilihat sebagai template eksternal (sebenarnya, ia juga merupakan kontrol tanpa-template). Untuk lebih jelasnya, lihat penjelasan mengenai penyaji dalam Tutorial TRepeater.

Properti berikut dipakai untuk menetapkan tipe template dan penyaji datalist. Jika tipe konten didefinisikan dengan template dan penyaji, maka penyaji diambil lebih dulu.

Ketika dataBind() dipanggil, TDataList menjalani masa hidup seperti berikut untuk setiap baris data:

  1. buat item berdasarkan template atau penyaji
  2. setel baris data ke item
  3. munculkan event OnItemCreated
  4. tambah item sebagai kontrol anak
  5. panggil dataBind() pada item
  6. munculkan event OnItemDataBound

TDataList memunculkan OnItemCommand kapan saja kontrol tombol di dalam beberapa item datalist memunculkan event OnCommand. Oleh karena itu, anda bisa menangani semua event OnCommand di satu tempat dengan menulis pengendali event untuk event OnItemCommand. Event tambahan dimunculkan jika event OnCommand memiliki salah satu dari nama perintah berikut (tidak sensitif-huruf):

TDataList menyediakan beberapa properti untuk mendukung pengotakan item. Jumlah kolom yang digunakan untuk menampilkan item data dietapkan melalui properti RepeatColumns, sementara RepeatDirection mengatur urutan item yang sedang disajikan. Tata letak item data dalam daftar ditetapkan melalui RepeatLayout, yang mengambil salah satu dari nilai berikut:

Item dalam TDataList dapat berupa salah satu dari tiga keadaan: sedang dilihat, sedang diedit dan sedang dipilih. Untuk mengubah keadaan item tertentu, setel SelectedItemIndex atau EditItemIndex. Former akan mengubah item yang ditunjuk ke mode yang dipilih, yang akan menyebabkan item menggunakan SelectedItemTemplate atau SelectedItemRenderer dalam penyajiannya. Yang terakhir akan mengubah item yang ditunjuk ke mode edit dan menggunakan template atau penyaji terkait. Catatan, jika sebuah item dalam mode edit, maka memilih item ini tidak akan berpengaruh.

Gaya berbeda dapat diterapkan ke item dalam status yang berbeda. Gaya aplikasi dilakukan dalam cara hirarkis: Gaya dalam hirarki lebih tinggi akan diturunkan dari hirarki lebih rendah. Dimulai dari hirarki paling rendah, gaya item termasuk:

Oleh karena itu, jika warna latar belakang disetel sebagai merah dalam ItemStyle, EditItemStyle juga akan mempunyai warna latar belakang merah keciali ia disetel ke nilai berbeda secara eksplisit.

Ketika halaman yang berisi datalist adalah post back, datalist akan mengembalikan secara otomatis seluruh kontennya, termasuk item, header, footer dan pemisah. Akan tetapi, baris data terkait dengan setiap item tidak akan ditemukan kembali dan menjadi null. Untuk mengakses data, gunakan salah satu cara berikut:

Contoh berikut memperlihatkan bagaimana menggunakan TDataList guna menampilkan data tabular, dengan tata letak dan gaya yang berbeda.

Pemakaian umum dari TDataList adalah untuk memanipulasi data tabular, termasuk melihat, mengedit, meghapus item data. Ini dihidupkan dengan event perintah dan berbagai template item pada TDataList.

Contoh berikut menampilkan informasi produk komputer. Para pengguna dapat menambah produk baru, memodifikasi atau menghapus produk yang sudah ada. Agar bisa mencari item data untuk pemutakhiran atau penghapusan, properti DataKeys yang digunakan.

Harap berhati-hati, untuk kemudahan, aplikasi ini tidak melakukan validasi input apapun. Dalam aplikasi sebenarnya, pastikan input divalidasi sebelum menyimpannya ke dalam database.