Begitu banyak kontrol yang berbeda untuk dipilih! Apa praktik terbaik untuk menentukan kontrol mana yang digunakan untuk menampilkan data di ASP.NET?
asp.net
user-interface
mattruma
sumber
sumber
Jawaban:
Ini benar-benar tentang apa yang ingin Anda capai
Gridview - Terbatas dalam desain, bekerja seperti tabel html. Lebih banyak lagi dalam fungsionalitas bawaan seperti edit / perbarui, halaman, urutkan. Banyak biaya tambahan.
DataGrid - Versi lama dari Gridview. Gridview adalah super datagrid.
Datalist - versi Gridview yang lebih dapat disesuaikan. Juga memiliki beberapa overhead. Lebih banyak pekerjaan manual karena Anda harus mendesainnya sendiri.
ListView - Datalist baru :). Hampir merupakan gabungan dari datalist dan gridview di mana Anda dapat menggunakan paging dan build dalam fungsi seperti Gridview, tetapi memiliki kebebasan desain. Salah satu kontrol baru di keluarga ini
Repeater - Bobot yang sangat ringan. Tidak ada fungsi bawaan seperti Header, Footer. Memiliki overhead paling sedikit.
sumber
Semua orang menyukainya: Itu Tergantung.
Sekarang untuk beberapa panduan khusus (memperluas jawaban luar biasa WebDude di atas) ...
Apakah desain Anda cocok dengan spreadsheet alami atau tampilan kisi dari data? GridView .
Apakah Anda perlu menampilkan daftar atau tampilan data yang diformat lainnya, mungkin dengan header dan footer, dan mungkin dengan kontrol dan / atau pemformatan khusus untuk setiap record data? (EG, tautan ubahsuaian, mungkin Tombol Tautan, atau kontrol edit khusus?) Apakah tampilan ini secara khusus tidak sesuai secara alami dengan tampilan spreadsheet atau kisi? ListView
Jika Anda memenuhi semua kriteria ListView, tetapi secara alami Anda akan cocok dengan kisi, Anda dapat mempertimbangkan DataList .
Saya menggunakan Repeater ketika saya hanya membutuhkan beberapa data dasar yang diiterasi dengan beberapa bit desain khusus, tidak ada header, tidak ada footer, bagus dan bersih.
sumber
Tampilan Markup
Mendeklarasikan kode sampel berikut dimungkinkan untuk semua 3 (ListView, DataList, Repeater)
dalam daftar berikut Anda dapat melihat templat dan opsi yang tersedia untuk masing-masingnya dan melihat perbedaannya sendiri
ListView (perhatikan edit, group, insert, layout)
DataList (perhatikan pasangan Style)
Pengulang
Tampilan Kode (tampilan lanjutan)
CompositeDataBoundControl :
lihat hierarki kelas berikut (dan kontrol terkait).
kontrol ini menghosting kontrol asp.net lain di templatnya untuk menampilkan data terikat kepada pengguna
Beberapa deskripsi untuk klarifikasi yang lebih baik
Kontrol ListView
Kontrol ListView juga menggunakan templat untuk menampilkan data. Namun, ini mendukung banyak templat tambahan yang memungkinkan lebih banyak skenario saat bekerja dengan data Anda. Template ini termasuk LayoutTemplate, GroupTemplate, ItemSeparatorTemplate .
Kontrol ListView ( tidak seperti DataList dan Repeater ) juga secara implisit mendukung kemampuan untuk mengedit, menyisipkan, dan menghapus data dengan menggunakan kontrol sumber data. Anda dapat menentukan template individual untuk masing-masing skenario ini.
Kontrol DataList
Kontrol DataList bekerja seperti kontrol Repeater . Ini mengulangi data untuk setiap baris dalam kumpulan data Anda, dan ini menampilkan data ini sesuai dengan templat yang Anda tentukan. Namun , ini menjabarkan data yang ditentukan dalam template dalam berbagai struktur HTML. Ini termasuk opsi untuk tata letak horizontal atau vertikal, dan ini juga memungkinkan Anda untuk mengatur bagaimana data harus diulang, sebagai tata letak alur atau tabel.
Kontrol DataList tidak secara otomatis menggunakan kontrol sumber data untuk mengedit data. Sebagai gantinya, ia menyediakan peristiwa perintah di mana Anda dapat menulis kode Anda sendiri untuk skenario ini. Untuk mengaktifkan kejadian ini, Anda menambahkan kontrol Tombol ke salah satu templat dan menyetel properti CommandName tombol ke kata kunci edit, hapus, perbarui, atau batalkan. Acara yang sesuai kemudian dimunculkan oleh kontrol DataList.
Kontrol Repeater
Kontrol Repeater juga menggunakan template untuk menentukan pengikatan kustom. Namun, ini tidak menampilkan data sebagai catatan individu. Sebaliknya, ini mengulangi baris data seperti yang Anda tentukan di template Anda. Ini memungkinkan Anda membuat satu baris data dan mengulanginya di seluruh halaman Anda.
Kontrol Repeater adalah template hanya baca . Artinya, ini hanya mendukung ItemTemplate. Itu tidak secara implisit mendukung pengeditan, penyisipan, dan penghapusan. Anda harus mempertimbangkan salah satu kontrol lain jika Anda memerlukan fungsionalitas ini, jika tidak, Anda harus membuat kode sendiri untuk kontrol Repeater.
Deskripsi di atas berasal dari MCTS Exam 70-515 Pengembangan Aplikasi Web dengan buku Microsoft.NET Framework 4 .
DataGrid bahkan tidak disebutkan dalam buku ini dan digantikan oleh GridView yang populer dan dijawab dengan baik oleh pengguna lain
sumber
Memang! Saya telah menulis blog tentang perbedaan antara alat data ASP.NET 4.0 . Pada dasarnya, tampilan kisi adalah cara paling ampuh untuk menyajikan informasi tabel, sedangkan kontrol ListView adalah untuk tampilan data berulang yang lebih rumit. Jika saya memberikan saran kepada pemula ASP.NET, saya akan memberi tahu mereka untuk mempelajari tampilan grid luar dalam dan mengabaikan kontrol lain untuk memulai.
sumber
Semuanya bermuara pada bagaimana Anda ingin mengatur tata letak data Anda.
Jika Anda perlu mengontrol tata letak (seperti tabel versus CSS versus apa pun), saat menggunakan Repeater atau ListView. Di antara keduanya, ListView memberi Anda lebih banyak peristiwa dan perintah bawaan untuk mengedit, memilih, menyisipkan. Selain itu fungsi paging dan pengelompokan. Repeater sangat sederhana, ia mengulangi tata letak dengan data. Karena Anda membuat tata letak dengan tangan, Listview dan Repeater memerlukan lebih banyak kode.
GridView adalah DataGrid yang diperbarui sehingga hampir tidak ada alasan untuk menggunakan DataGrid. GridView bekerja dengan sangat baik saat dihubungkan ke sumber data ASP.NET standar, tetapi membatasi Anda ke tata letak tabular dengan banyak aturan tata letak. GridView memerlukan lebih sedikit kode karena Anda menggunakan tata letak bawaan.
sumber