Aplikasi Web
Dengan Database
5.1 Mengenalkan Database Karate
Database yang akan digunakan pada contoh ke
depan dinamakan dengan Karate
(Karate.mdf), yang dirancang untuk keanggotaan dan penjadwalan kelas untuk
sekolah bela diri. Sebuah tabel dengan nama Anggota memuat informasi tentang
anggota-anggota, seperti nama depan, nama belakang, nomor telepon, dan
seterusnya. Lihat Tabel 5.1.
Yang berelasi dengan tabel Anggota adalah tabel Pembayaran, yang ditampilkan pada Tabel
5.2. Ia menunjukkan pembayaran yang dilakukan oleh anggota. Setiap baris pada
tabel Pembayaran memuat Id_Anggota yang mengidentifikasi
anggota (dari tabel Anggota) yang melakukan
pembayaran. Relasi ditunjukkan oleh diagram pada Gambar 5.1. Garis
menghubungkan bidang ID pada tabel Anggota dengan bidang Id_Anggota pada tabel Pembayaran.
Tabel 5.1 Tabel Anggota
dari database Karate
Tabel 5.2 Tabel Pembayaran
Gambar 5.1 Relasi antara tabel Anggota dan tabel Pembayaran
5.2 Kontrol GridView
Kontrol GridView
menawarkan cara ideal dalam menampilkan sebuah tabel database dengan
mengikatnya dengan suatu sumber data. Kontrol ini dapat dipakai untuk
mengurutkan kolom, menyeleksi urutan kolom, dan memformat data di dalam
kolom-kolom. Anda juga dapat mengedit, menyisipkan, dan memperbarui baris-baris
database pada grid.
Kontrol GridView
ditempatkan pada bagian Data dari
jendela Toolbox pada Visual Studio.
Salah satu contohnya ditunjukkan pada Design
view pada Gambar 5.2. Ketika Anda
mengklik smart tag, menu GridView Tasks akan dimunculkan, seperti pada
Gambar 5.3. Anda dapat menggunakannya untuk menetapkan sejumlah properti grid
dan melakukan koneksi ke suatu sumber data.
Kode XHTML untuk sebuah GridView adalah sederhana ketika ditampilkan pada Source view:
<asp:GridView
ID="GridView1"
runat="server">
</asp:GridView>
Gambar 5.2 Kontrol GridView
pada Design view
Gambar 5.3 Menu GridView
Tasks
Ada banyak properti dari kontrol GridView
yang dapat dipakai untuk mengendalikan penyejajaran, warna, font, batas, dan
seterusnya. Adalah mudah untuk memilih style AutoFormat dari jendela GridView
Tasks. Pada Gambar 5.4, misalnya, Anda menyeleksi autoformat Ocenia, dimana heading kolom adalah dark blue (ditampilkan abu-abu pada buku yang dicetak). Setelah memilih
format ini, kode XHTML untuk kontrol ini menjadi lebih kompleks:
<asp:GridView ID="GridView1"
runat="server" BackColor="White"
BorderColor="#3366CC"
BorderStyle="None" BorderWidth="1px"
CellPadding="4"
Height="156px" Width="325px">
<FooterStyle
BackColor="#99CCCC" ForeColor="#003399" />
<HeaderStyle
BackColor="#003399" Font-Bold="True"
ForeColor="#CCCCFF"
/>
<PagerStyle
BackColor="#99CCCC" ForeColor="#003399"
HorizontalAlign="Left"
/>
<RowStyle
BackColor="White" ForeColor="#003399" />
<SelectedRowStyle
BackColor="#009999" Font-Bold="True"
ForeColor="#CCFF99"
/>
<SortedAscendingCellStyle
BackColor="#EDF6F6" />
<SortedAscendingHeaderStyle
BackColor="#0D4AC4" />
<SortedDescendingCellStyle
BackColor="#D6DFDF" />
<SortedDescendingHeaderStyle
BackColor="#002876" />
</asp:GridView>
Anda dapat melihat dari kode ini bahwa
pemformatan dilakukan menggunakan sejumlah tag seperti <FooterStyle> dan
<HeaderStyle>. Banyak pengembang piranti lunak lebih memilih menciptakan
kelas CSS terpisah untuk tiap tag ini agar membuat kode sumber lebih mudah
dibaca.
Gambar 5.4 GridView, dengan autoformat Ocenia
Kontrol SqlDataSource
Ketika Anda menciptakan suatu koneksi ke
sebuah database SQL Server pada Web form, Anda perlu menggunakan kontrol SqlDataSource. Ia ditempatkan pada Design view sebagai persegi-panjang abu-abu, dengan nama kontrol di
dalamnya, seperti pada Gambar 5.5. Berikut adalah kode XHTML dari sebuah
kontrol SqlDataSource yang
menghubungkan ke database Karate:
<asp:SqlDataSource
ID="SqlDataSource1"
runat="server" ConnectionString="<%$
ConnectionStrings:KarateConnectionString %>"
SelectCommand="SELECT * FROM
[Anggota]">
</asp:SqlDataSource>
Tutorial 5.1: Menampilkan Tabel Anggota Karate Pada
KontrolGridView
Pada tutorial ini, Anda akan menciptakan
sebuah aplikasi yang menghubungkan ke database Karate dan menampilkan tabel Anggota pada suatu kontrol GridView. Contoh keluaran ketika
aplikasi dijalankan ditampilkan pada Gambar 5.6.
Langkah-Langkah
Tutorial:
Langkah 1: Ciptakan sebuah situs Web kosong dengan
nama Grid Anggota Karate.
Langkah 2: Tambahkan sebuah folder pada projek dengan
nama App_Data.
Langkah 3: Pada jendela Windows Explorer, salin file
database Karate.mdf ke folder App_Data.
Langkah 4: Pada Visual Studio, klik kanan pada folder App_Data dan pilih Refresh Folder dari menu
yang muncul. (Nama file database akan ditampilkan).
Langkah 5: Tambahkan sebuah Web form dengan nama Default.aspx pada projek. Buka form ini
pada Source view.
Langkah 6: Pada tag <head>, tetapkan judul
menjadi Anggota Karate.
Langkah 7: Di dalam <form>, tambahkan heading
level-dua berikut:
<h2>Tabel
Anggota, Database Karate</h2>
</form>
Langkah 8: Tambahkan kontrol GridView berikut (Anda bisa menggeret kontrol ini dari jendela Toolbox ke Design view):
<asp:GridView
ID="dgvAnggota"
style="width:90%"
runat="server">
</asp:GridView>
Langkah 9: Pergi ke Design view, buka
jendela GridView Tasks, dan pilih New Data Source di bawah entri Choose Data Source.
Langkah 10: Pada Data
Source Configuration Wizard, pilih SQL Database, ubah nilai ID menjadi AnggotaDataSource, dan klik tombol OK
untuk melanjutkan. Hal ini ditunjukkan pada Gambar 5.7.
Langkah 11: Pada langkah Choose Your Data Connection, klik New Connection, dan kemudian pilih file Karate.mdf. Hal ini ditampilkan pada Gambar 5.8. Klik tombol Next >.
Langkah 12: Pada langkah Save the Connection String, klik tombol Next untuk melanjutkan.
Langkah 13: Pada langkah Configure the Select Statement, pilih tabel Anggota, seperti ditunjukkan pada Gambar 5.9. Tempatkan sebuah
centang pada kotak periksa di samping tiap kolom.
Langkah 14: Klik tombol ORDER BY…. Pada kotak dialog yang ditampilkan pada Gambar 5.10,
urutkan berdasarkan kolom Nama_Belakang.
Klik tombol OK untuk menutup kotak dialog.
Langkah 15: Kembali ke kotak dialog Configure the Select Statement, klik
tombol Next, yang akan membawa Anda
ke dialog Test Query. Klik tombol Test Query. Jika kolom-kolom yang
ditampilkan sesuai dengan apa yang ditampilkan pada Gambar 5.11, klik tombol Finish untuk menutup jendela.
Langkah 16: Klik smart tag pada GridView dan periksa opsi Enable
Sorting.
Langkah 17: Pilih AutoFormat
dari jendela GridView Tasks dan pilih format Ocenia.
Langkah 18: Simpan projek dan lihat Default.aspx pada browser. Anda akan
melihat apa yang ditampilkan pada Gambar 5.6.
Langkah 19: Urutkan setiap kolom dengan mengklik kepala
kolom. Jika Anda mengklik kolom yang sama dua kali berturut-turut, kolom
tersebut akan diurutkan dengan tatanan menurun.
Tutorial 5.2: Memformat Kolom Anggota Database Karate
Pada tutorial
ini, Anda akan memformat salah satu kolom pada aplikasi Grid Anggota Karater. Anda juga akan memodifikasi
kepala kolom dan mencaritahu apa yang terjadi ketika Anda secara salah
menetapkan properti DataField dari
sebuah kolom.
Langkah-Langkah Tutorial
Langkah 1: Buka situs Grid
Anggota Karate.
Langkah 2: Pada Design view
dari Default.aspx, pilih kontrol GridView dan buka jendela Properties.
Langkah 3: Pilih porperti Columns.
Ini akan menyebabkan jendela Fields
ditampilkan, seperti pada Gambar 5.12. Pada lis Selected fields, pilih Tanggal_Bergabung. Pada daftar properti
untuk kolom ini, masukkan {0:d} ke
dalam properti DataFormatString.
Notasi {0:d} dikenal sebagai
penspesifikasi format. Pada kasus ini, ia menetapkan format tanggal pendek.
Langkah 4: Ekspansi entri-entri di bawah properti ItemStyle dari kolom Tanggal_Bergabung. Ubah subproperti HorizontalAlign menjadi Center. Klik tombol OK untuk menutup kotak dialog, seperti
ditunjukkan pada Gambar 5.13.
Langkah 5: Simpan form dan lihat pada browser. Amati bahwa tanggal
sekarang diformat dengan format mm/dd/yyyy,
dan nilai-nilai kolom sekarang disejajarkan ke tengah, seperti ditunjukkan pada
Gambar 5.14.
Gambar 5.14 Kolom Tanggal_Bergabung
sekarang diformat dengan tanggal pendek dan disejajarkan ke tengah
Langkah 6: Periksa kode sumber dari form dan cari kolom Tanggal_Bergabung. Perhatikan bahwa ia
mencakup parameter DataFormatString
yang telah baru saja Anda ciptakan:
<asp:BoundField
DataField="Tanggal_Bergabung"
HeaderText="Tanggal_Bergabung"
SortExpression="Tanggal_Bergabung"
DataFormatString="{0:d}">
Langkah 7: Pada kode sumber, ubah parameter HeaderText menjadi Tangga
Bergabung dan simpan form. Ini hanya
akan mengubah nama yang ditampilkan pada kepala kolom.
Langkah 8: Lihat halaman pada browser dan verifikasi perubahan
yang ditampilkan, seperti ditunjukkan pada Gambar 5.15.
Langkah 9: Ubah properti DataField
untuk kolom Tanggal_Bergabung
menjadi TanggalBergabung. Ketika
Anda menyimpan form dan melihat halaman pada browser, Anda akan melihat error
seperti pada Gambar 5.16.
5.3 Menggunakan Kontrol DetailsView
Kontrol DetailsView
dapat dipakai user untuk menambah, melihat, mengedit, dan menghapus baris-baris
database. Jika Anda menghubungkannya ke sebuah kontrol DataSource, ia akan menampilkan satu tabel pada suatu waktu. Tidak
ada pemrograman yang diperlukan. Microsoft telah bekerja keras untuk
mengotomatisasi sebanyak mungkin pekerjaan, dan pengeditan tabel database
merupakan salah satu pekerjaan itu sehingga mempermudah pekerjaan programer.
Kontrol DetailsView
ditemukan pada bagian Data pada
jendela Toolbox. Ketika Anda menempatkannya
pada sebuah Web form, Anda menggunakan jendela DetailsView Tasks untuk
melekatkannya ke suatu sumber data.
Properti-Properti dari Kontrol DetailsView
Properti DataSourceID
dari kontrol DetailsView memuat
sebuah referensi ke suatu kontrol DataSource
pada form yang sama yang menyediakan koneksi database.
Setiap anggota dari koleksi Fields adalah sebuah objek BoundField. Sebagai contoh, pada kode
XHTML berikut untuk sebuah kontrol DetailsView, BoundField menampilkan kolom
database ID:
<Fields>
<asp:BoundField DataField="ID"
HeaderText="ID"
ReadOnly="True"
SortExpression="ID"
/>
Anda dapat menyeleksi link AutoFormat pada jendela DetailsView Taks untuk menyeleksi sejumlah format pustaka.
Properti DataKeyNames
adalah sebuah koleksi yang memuat sejumlah string yang mengidentifikasi
kolom-kolom dari sumber data yang membangun kunci primer.
Properti DefaultMode
menyeleksi status awal dari kontrol ketika ia pertama kali menjadi visibel.
Pengaturan defaultnya adalah ReadOnly,
tetapi Anda dapat mengaturnya menjadi Edit atau Insert jika Anda ingin user
memulai pengeditan atau penyisipan item dengan segera.
Pada Tutorial 5.3, Anda akan memperbarui
tabel Anggota dari database Karate,
menggunakan sebuah kontrol DetailsView.
Tutorial 5.3: Detil-Detil Anggota Karate
Pada tutorial
ini, Anda akan menciptakan sebuah aplikasi yang dapat dipakai user untuk
melihat, mengedit, menyisipkan, dan menghapus baris-baris di dalam tabel Anggota pada database Karate. Anda akan mengoneksikan kontrol
DetailsView ke suatu SqlDataSource.
Gambar 5.17
menunjukkan aplikasi saat dijalankan. Kata Edit,
Delete, dan New merupakan kontrol-kontrol LinkButton
pustaka. Pada Gambar 5.18, user telah mengklik tombol New dan memasukkan data untuk seorang anggota baru. Ketika user
mengklik tombol Insert, maka baris
itu akan disimpan di dalam database. Jika user mencoba untuk menambahkan sebuah
baris yang memiliki ID yang sama dengan sebuah ID yang telah ada di dalam
tabel, maka halaman error akan ditampilkan. Ketika user mengklik tombol Edit, ia dapat memodifikasi hanya
bidang-bidang anggota, seperti ditunjukkan pada Gambar 5.19. Ketika user
mengklik tombol Update, perubahan
pada rekaman akan disimpan ke dalam database.
Langkah-Langkah Tutorial
Langkah 1: Ciptakanlah sebuah situs Web kosong dengan nama Detil Anggota Karate. Tambahkan sebuah
folder dengan nama App_Data, dan
tambahkan sebuah Web form dengan nama Default.aspx.
Langkah 2: Pada jendela Windows
Explorer, salin file Karate.mdf ke folder App_Data.
Langkah 3: Ubah nilai <title> menjadi Detil Tabel Anggota.
Langkah 4: Pada baris pertama dari bagian <form>, sisipkan
berikut:
<h2>Detil-Detil Tabel
Anggota</h2>
Langkah 5: Tambahkan sebuah kontrol DetailsView pada halaman, dan tetapkan properti ID-nya menjadi dvTambahAnggota. Perlebar menjadi sekitar 300 piksel.
Langkah 6: Pada Design view, pilih smart tag di pojok
kanan-atas dari kondrol dvTambahAnggota.
Di bawah Choose Data Source, pilih New data source. Jendela Data Source Configuration Wizard akan ditampilkan, seperti
ditunjukkan pada Gambar 5.20.
Langkah 7: Namai sumber data sebagai AnggotaDataSource dan lakukan koneksi ke file database Karate.mdf, seperti ditunjukkan pada
Gambar 5.21. Pilih semua kolom dari tabel Anggota.
Urutkan baris berdasarkan Nama_Belakang
dengan tatanan menaik, seperti ditunjukkan pada Gambar 5.22.
Gambar 5.22 Memilih semua kolom pada tabel Anggota dan menetapkan pengurutan
menaik berdasarkan kolom Nama_Belakang
Langkah 8: Sebelum pindah ke jendela berikutnya, klik tombol Advanced. Pada jendela Advanced SQL Generation Options, pilih
opsi Generate INSERT, UPDATE, dan DELETE
statements, seperti ditunjukkan pada Gambar 5.23. Klik tombol OK, dan kemudian klik tombol Next.
Langkah 9: Klik tombol Finish
untuk menutup jendela Configure Data
Source. Kembali ke Design view dari form, buka menu Tasks dari dvTambahAnggota dan pilih kotak periksa untuk penyisipan,
pengeditan, dan penghapusan. Form sekarang akan ditampilkan pada Design view, seperti pada Gambar 5.24.
Perhatikan bahwa kontrol sekarang mencakup tiga buah kontrol LinkButton dengan nama Edit, Delete, dan New.
Gambar 5.23 Pada jendela Advanced SQL Generation Options, opsi Generate INSERT, UPDATE, dan DELETE statements diklik
Langkah 10:
Simpan form dan lihat halaman pada browser. Ia akan ditampilkan seperti pada
Gambar 5.25.
Langkah 11: Pilih grid pada Design
view dan buka properti Fields. (Atau, Anda dapat menyeleksi Edit Fields dari menu Tasks
dari kontrol). Pada jendela Fields,
pilih bidang Tanggal_Bergabung dan
tetapkan properti DataFormatString
menjadi {0:d}, untuk menetapkan
penspesifikasi format tanggal pendek, seperti ditunjukkan pada Gambar 5.26.
Langkah 12: Simpan form dan lihat halaman pada browser. Format
bidang Tanggal_Bergabung akan
menjadi pendek.
Langkah 13: Pada jendela Tasks
untuk kontrol, pilih AutoFormat, dan
pilih Classic, seperti ditunjukkan
pada Gambar 5.27.
Selanjutnya,
Anda akan menguji kontrol dengan menyisipkan, mengedit, dan menghapus anggota.
Semua perubahan yang Anda buat akan permanen.
Langkah 14: Lihat form pada browser dan klik tombol New. Bidang-bidang akan jelas terlihat.
Masukkan data berikut: 14, Bakri, Erik,
234-2211, 3/1/2016, seperti ditunjukkan pada Gambar 5.28. Kemudian klik
tombol Insert. Tampilan sekarang
menunjukkan anggota yang telah Anda sisipkan, seperti ditunjukkan pada Gambar 5.29.
Gambar 5.30 Penyisipan anggota baru dengan ID yang telah
ada akan mengakibatkan error karena melanggar kekangan kunci primer
Langkah 15: Coba menyisipkan rekaman kedua, menggunakan nomor ID
yang sama. Anda akan melihat pesan error yang mengatakan bahwa perubahan yang
Anda minta tidak berhasil, seperti ditunjukkan pada Gambar 5.30. Klik tombol Back, ubah ID menjadi 15, dan klik
tombol Insert.
Langkah 16: Klik tombol Delete.
Rekaman yang Anda sisipkan akan terhapus, dan orang pertama di dalam tabel
(Chandra Rico) akan ditampilkan.
Langkah 17: Klik tombol Edit,
ubah salah satu bidang kecuali ID, dan klik tombol Update. Perubahan akan disimpan ke dalam database.
Tutorial 5.4: Memilih Anggota Berdasarkan ID
Pada tutorial
ini, Anda akan menambahkan sebuah query terparameterisasi pada properti SelectCommand dari kontrol SqlDataSource dari aplikasi Detil Anggota Karate. User
akan dapat mengedit sembarang baris dari tabel. Ketika aplikasi dijalankan
(lihat Gambar 5.31), user diminta untuk memasukkan nomor ID anggota. Ketika ia
melakukannya dan mengklik tombol Go,
anggota yang diminta akan ditampilkan, seperti ditunjukkan pada Gambar 5.32.
Langkah-Langkah Tutorial
Langkah 1: Jika belum dibuka, buka situs Web Detil Anggota Karate.
Langkah 2: Tepat di bawah kontrol DetailsView, sisipkan teks: Pilih
ID untuk melihat.
Langkah 3: Sisipkan sebuah kontrol TextBox di sisi kanan teks. Tetapkan properti ID menjadi teksCariId.
Langkah 4: Sisipkan sebuah kontrol Button di sisi kanan dari TextBox.
Tetapkan properti-properti berikut: ID =
tombolGo, Text = Go.
Selanjutnya, Anda akan memodifikasi query pada kontrol SqlDataSource dengan menambahkan sebuah parameter query. Parameter
itu akan diikat ke kontrol TextBox
yang telah Anda tambahkan.
Langkah 5: Klik smart tag dari kontrol AnggotaDataSource dan pilih Configure
Data Source.
Langkah 6: Klik tombol Next,
pertahankan koneksi yang sama.
Langkah 7: Pada panel Configure
the Select Statement, tabel dan kolom-kolom diseleksi, seperti ditunjukkan
pada Gambar 5.33.
Langkah 8: Klik tombol WHERE.
Jendela Add WHERE Clause akan
ditampilkan.
Langkah 9: Pilih kolom ID, dan pilih Control pada list dengan judul Source.
Pilih teksCariId dari list dengan
label Control ID. Nilai-nilai form akan ditampilkan seperti pada Gambar 5.34.
Langkah 10: Klik tombol Add.
Sebuah entri baru akan ditampilkan pada kotak di bawah jendela, seperti
ditunjukkan pada Gambar 5.35.
Langkah 11: Klik tombol OK untuk menutup jendela, yang membawa Anda
kembali ke jendela Configure the Select
Statement.
Langkah 12: Klik tombol Next,
dan klik tombol Finish.
Langkah 13: Simpan halaman dan lihat pada browser.
Langkah 14: Masukkan sebuah ID pada kotak teks dan klik tombol Go. Kontrol DetailsView akan diisi dengan data anggota yang dicari. Lakukan
beberapa eksperimen yang berbeda.
Lihat Kode Sumber Halaman Web
Baris berikut
pada kode sumber halaman Web memuat properti SelectCommand dari kontrol SqlDataSource.
Ia menggunakan sebuah parameter query @ID:
SelectCommand="SELECT [ID],
[Nama_Belakang], [Nama_Depan], [Telepon],
[Tanggal_Bergabung]
FROM [Anggota] WHERE ([ID] = @ID)
ORDER
BY [Nama_Belakang]"
Adalah
menarik untuk melihat bagaimana ID yang dimasukkan ke dalam kotak teks oleh
user ditugaskan kepada parameter query SQL pada saat aplikasi dijalankan.
Kontrol SqlDataSource memiliki
sebuah koleksi SelectParameters,
yang ke dalamnya Anda telah menyisipkan sebuah objek ControlParameter:
<SelectParameters>
<asp:ControlParameter
ControlID="teksCariId"
Name="ID"
PropertyName="Text"
Type="Int32"
/>
</SelectParameters>
ControlParameter telah diciptakan ketika Anda menetapkan ControlID, seperti ditunjukkan pada
Gambar 5.35. Pada gambar, properti ControlID
ditugaskan kepada teksCariId, nama
dari kontrol TextBox yang memuat ID
yang dimasukkan oleh user. Pada saat aplikasi dijalankan, server Web akan
mencari nilai ControlID dan
menggunakannya untuk mendapatkan isi dari kotak teks teksCariId dan menempatkan nilai itu ke dalam parameter query.
5.4 Berinteraksi Dengan Kontrol GridView
Kontrol GridView
sangat mudah untuk digunakan dalam menampilkan data. Tetapi ia juga sebuah
kontrol yang sangat kaya, dengan banyak properti dan kapabilitas. Seringkali,
user ingin berinteraksi dengan kontrol dan melakukan operasi-operasi pada data
grid. User bisa saja ingin memilih satu atau lebih baris, menghapus baris,
mengedit, dan menyisipkan baris baru. Pada bagian ini, Anda akan mempelajari
kegunaan dari tombol-tombol perintah pada GridView.
Anda juga akan belajar bagaimana sebuah kontrol SqlDataSource dapat menggunakan informasi seleksi grid untuk
memfilter data.
Database
Kampus.mdf
Pada bagian ini, Anda akan menggunakan sebuah
database dengan nama Kampus.mdf,
yang memuat sejumlah matakuliah, data mahasiswa, dan sebuah tabel yang menjejak
daftar mahasiswa pada matakuliah-matakuliah. Pertama, Anda akan menampilkan
tabel Kuliah dari database ini, yang
memuat kolom-kolom berikut (IdMtKuliah
menjadi kunci primer), yang ditunjukkan pada Gambar 5.36 dan Gambar 5.37.
Selanjutnya, Anda akan menggunakan tabel
Mahasiswa, yang memuat kolom-kolom berikut (IdMahasiswa sebagai kunci primer), yang ditunjukkan pada Gambar 5.38
dan Gambar 5.39.
Terakhir, Anda akan menggunakan tabel Pendaftaran yang menjejak mahasiswa mana yang telah mendaftarkan matakuliah mana, seperti ditunjukkan pada Gambar 5.40 dan Gambar 5.41.
Ketiga tabel memuat relasi seperti
ditunjukkan pada Gambar 5.42. Relasai one-to-many ada antara tabel Kuliah dan tabel Pendaftaran. Relasi one-to-many lain ada antara tabel Mahasiswa dan tabel Pendaftara.
Menyisipkan
Tombol Perintah Pada GridView
Gambar 5.43 menunjukkan sebuah Web form pada
mode Design dengan kontrol GridView dan SqlDataSource. Kontrol SqlDataSource
melakukan koneksi ke tabel Kuliah di
dalam file database Kampus.mdf.
Kontrol LinkButtons di sisi kiri
grid secara otomatis dihasilkan ketika Anda menyeleksi opsi Enable Selection, Enable Editing, dan Enable Deleting pada
jendela GridView Tasks. Tombol-tombol ini secara
kolektif dikenal sebagai perintah-perintah GridView.
Skema warna yang Anda lihat pada Gambar adalah warna yang dihasilkan oleh
pemilihan AutoFormat pada jendela GridView Tasks.
Ketika user mengklik tombol Delete pada kontrol GridView, baris terkait akan terhapus
dari database. Tidak ada DataSet di
dalam memori. Ketika user mengklik tombol Edit,
maka grid akan menampilkan template pengeditan yang memuat kontrol-kontrol TextBox, seperti ditunjukkan pada
Gambar 5.44. Setelah melakukan perubahan, user mengklik tombol Update untuk menyimpannya, atau
mengklik tombol Cancel untuk
mengabaikannya.
SARAN: Ketika Anda membuka jendela Configure Data Source, Anda dapat
mengklik tombol Advanced untuk
menghasilkan query-query yang menggabungkan sejumlah tabel. Tabel yang
digunakan pada sumber data harus memiliki kunci primer sebelum Anda dapat
menghasilkan query Insert, Delete, dan Update.
Anda dapat mengubah tampilan dan
operasi-operasi dari kontrol GridView
dengan mengubah link teks dari Cancel,
Delete, Edit, dan Update. Untuk
melakukannya, edit properti Columns,
pilih kolom CommandField, dan ubah
properti CancelText, DeleteText, EditText, dan UpdateText,
seperti ditunjukkan pada Gambar 5.45.
Anda juga dapat menggunakan tombol gambar
untuk melakukan operasi-operasi pada tiap baris grid. Pada Gambar 5.46,
misalnya, Anda menetapkan ButtonType =
Image, dan menugaskan nama file citra kepada properti DeleteImageUrl, EditImageUrl,
dan SelectImageUrl.
Tutorial 5.5: Menampilkan Tabel Kuliah Pada Sebuah GridView
Langkah-Langkah Tutorial
Langkah 1: Ciptakanlah sebuah situs Web ASP.NET kosong dengan nama
GridButton Kampus.
Langkah 2: Tambahkan sebuah form dengan nama Default.aspx pada
projek.
Langkah 3: Ciptakan sebuah folder App_Data.
Langkah 4: Salin file database Kampus.mdf ke folder App_Data.
Langkah 5: Tekan tombol Refresh pada jendela Solution Explorer.
Langkah 6: Pada Source view dari Default.aspx, ubah tag <body> menjadi:
<body
style="font-family:Arial;font-size:.85em">
Langkah 7: Sisipkan sebuah kontrol GridView pada form dan namai dengan dgvKuliah.
Langkah 8: Pada jendela GridView
Tasks, ciptakan suatu sumber data
dengan nama KuliahDataSource. Ia
akan menghubungkan ke tabel Kuliah
pada database Kampus.mdf. Urutkan
kolom berdasarkan IdMtKuliah.
Langkah 9: Ketika menciptakan sumber data, klik tombol Advanced. Pilih opsi untuk menciptakan
statemen INSERT, UPDATE, dan DELETE. Selesaikan konfigurasi DataSource.
Amati dan
periksa SqlDataSource pada Source view:
<asp:SqlDataSource
ID="KuliahDataSource" runat="server"
ConnectionString="<%$
ConnectionStrings:KampusConnectionString %>"
DeleteCommand="DELETE
FROM [Kuliah] WHERE [IdMtKuliah] = @IdMtKuliah"
InsertCommand="INSERT
INTO [Kuliah] ([IdMtKuliah], [TahunSem],
[Kredit], [NomorKuliah]) VALUES
(@IdMtKuliah, @TahunSem,
@Kredit, @NomorKuliah)"
SelectCommand="SELECT
[IdMtKuliah], [TahunSem], [Kredit],
[NomorKuliah] FROM [Kuliah] ORDER BY [IdMtKuliah]"
UpdateCommand="UPDATE
[Kuliah] SET [TahunSem] = @TahunSem,
[Kredit] = @Kredit, [NomorKuliah] = @NomorKuliah
WHERE [IdMtKuliah] = @IdMtKuliah">
</asp:SqlDataSource>
Pada definisi
DataSource, perhatikan empat objek
perintah: DeleteCommand, InsertCommand, SelectCommand, dan UpdateCommand.
Masing-masing objek adalah sebuah query SQL yang dieksekusi ketika diaktivasi
oleh sebuah kontrol yang dilekatkan pada sumber data ini. Kontrol GridView dihubungkan dengan sumber data
itu, sehingga perintah-perinta ini akan dieksekusi ketika grid diisi (SelectCommand), ketika user mengklik
tombol Delete (DeleteCommand), dan seterusnya.
Langkah 10: Seleksi grid dan verifikasi bahwa properti DataKeyNames ditetapkan menjadi IdMtKuliah.
Langkah 11: Pilih properti Columns
dari grid dan sejajarkan ke tengah tiap kolom, menggunakan properti ItemStyle dari tiap kolom.
Langkah 12: Pilih smart tag dari grid dan aktifkan opsi Selection, Editing, dan Deleting.
Langkah 13: Simpan projek dan jalankan aplikasi. Ia akan
menampilkan sejumlah matakuliah. Lakukan eksperiman dengan penyeleksian,
pengeditan, dan penghapusan baris. Pada Tutorial 5.6, Anda akan mengganti
perintah grid dengan tombol grafikal.
Tutorial 5.6: Menggunakan Tombol Perintah Grafikal Pada
Grid Kuliah
Pada tutorial
ini, Anda akan melanjutkan aplikasi GridButton
Kampus dengan memakai ikon untuk tombol Edit,
Delete, Select, Update, dan Cancel pada kontrol GridView.
Langkah-Langkah Tutorial
Langkah 1: Buka situs Web GridButton
Kampus.
Langkah 2: Salin file-file berikut ke folder projek Anda:
cancel.gif, delete.gif, edit.gif, select.gif, dan update.gif.
Langkah 3: Tekan tombol Refresh
pada jendela Solution Explorer.
Langkah 4: Pilih GridView
pada Design view dan buka jendela GridView
Tasks. Pilih Edit Columns.
Langkah 5: Pada jendela Fields, pilih CommandField dari kotak Selected
fields (di pojok kiri bawah dari
jendela).
Langkah 6: Tetapkan properti ButtonType
menjadi Image. Tetapkan
properti-properti berikut:
CancelImageUrl menjadi cancel.gif, DeleteImageUrl menjadi delete.gif, EditImageUrl menjadi edit.gif, SelectImageUrl
mendjadi select.gif, dan UpdateImageUrl
menjadi update.gif.
Langkah 7: Simpan form dan lihat pada browser. Verifikasi bahwa
ikon-ikon ditampilkan seperti pada Gambar 5.47.
Langkah 8: Klik ikon Delete
dan verifikasi bahwa baris terkait terhapus.
Langkah 9: Klik ikon Select
dan verifikasi bahwa baris terkait terseleksi.
Langkah 10: Klik ikon Edit
dan verivikasi bahwa tanda centang dan X merah ditampilkan, seperti ditunjukkan
pada Gambar 5.48.
Tutorial 5.7: Menampilkan Pendaftaran Kelas
Ketika user
menyeleksi sebuah baris pada kontrol GridView,
Anda dapat menuliskan kode untuk mencaritahu baris mana yang diseleksi.
Kemudian Anda dapat menggunakan informasi itu untuk memfilter baris-baris pada
grid kedua. Pada tutorial ini, Anda akan menampilkan pendaftaran kelas pada
sebuah kontrol GridView yang diisi
dari tabel-tabel di dalam database Kampus.
Tabel Kuliah memuat sejumlah
matakuliah yang ditawarkan oleh kampus, dan tabel Mahasiswa memuat sejumlah mahasiswa, dan tabel Pendaftaran menunjukkan mahasiswa mana yang telah mendaftarkan ke
matakuliah mana. Baris-baris contoh dari tabel Pendaftaran ditunjukkan pada
Gambar 5.49.
Aplikasi
menunjukkan sejumlah kelas perkuliahan ketika aplikasi dijalankan (Gambar 5.50).
Ketika user menyeleksi sebuah kelas, kontrol GridView lain akan menampilkan sejumlah mahasiswa yang terdaftar
pada kelas itu, yang diurutkan berdasarkan nama belakang dan nama depan. Salah
satu contoh keluaran ditampilkan pada Gambar 5.51.
Langkah Persiapan
Buka file web.config pada projek GridButton Kampus dan periksa string
koneksi database. Properti AttachDbFileName
harus sama dengan |DirektoriData|\Kampus.mdf.
Langkah-Langkah Tutorial
Langkah 1: Salin situs Web
GridButton Kampus dan ganti namanya menjadi Pendaftaran Kelas Kampus.
Langkah 2: Sisipkan baris pada Source view dari form,
tepat di bawah kontrol SqlDataSource:
Langkah 3: Pergi ke Design
view dan sisipkan kontrol SqlDataSource lain pada form. Namai
dengan PendaftaranDataSource.
Gunakan koneksi yang ada ke file database Kampus.
Konfigurasi sumber data sehingga ia menggabungkan tabel Kuliah, Pendaftaran, dan
Mahasiswa. Berikut adalah query-nya:
SELECT
Mahasiswa.IdMahasiswa, Mahasiswa.NamaDepan,
Mahasiswa.NamaBelakang, Mahasiswa.Ipk
FROM
Pendaftaran INNER JOIN
Mahasiswa ON Pendaftaran.IdMahasiswa = Mahasiswa.IdMahasiswa
WHERE
Pendaftaran.IdMtKuliah = @IdMtKuliah)
ORDER BY Mahasiswa.NamaBelakang,
Mahasiswa.NamaDepan
Anda dapat
menggunakan perangkat Query Builder untuk menciptakan query ini,
seperti ditunjukkan pada Gambar 5.52. Pada langkah Define Parameters
(ditunjukkan pada Gambar 5.53), pilih Control
sebagai sumber parameter dan pilih dgvKuliah
sebagai ControlID. Ini akan
memastikan bahwa parameter query SQL akan diisi saat aplikasi dijalankan dengan
ID matakuliah yang diseleksi oleh user pada kontrol dgvKuliah. Perhatikan bahwa properti SelectedValue telah diseleksi secara otomatis oleh Visual Studio.
Langkah 4: Setelah menyimpan sumber data, kembali ke Source view dan varifikasi bahwa PendaftaranDataSource
didefinisikan seperti ini:
<asp:SqlDataSource
ID="PendaftaranDataSource" runat="server"
ConnectionString="<%$
ConnectionStrings:KampusConnectionString %>"
SelectCommand="SELECT
Mahasiswa.IdMahasiswa,
Mahasiswa.NamaDepan, Mahasiswa.NamaBelakang, Mahasiswa.Ipk
FROM Pendaftaran INNER JOIN Mahasiswa ON
Pendaftaran.IdMahasiswa = Mahasiswa.IdMahasiswa
WHERE (Pendaftaran.IdMtKuliah = @IdMtKuliah)
ORDER BY Mahasiswa.NamaBelakang, Mahasiswa.NamaDepan">
<SelectParameters>
<asp:ControlParameter ControlID="dgvKuliah"
Name="IdMtKuliah"
PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
Langkah 5: Simpan halaman dan lihat pada browser. Klik ikon tanda
centang di samping setiap matakuliah pada grid, dan amati bahwa grid bawah akan
ditampilkan dengan sejumlah mahasiswa yang terdaftar pada matakuliah tersebut.
Tutorial 5.8: Menampilkan Pendaftaran Kelas Pada Halaman
Terpisah
Pada tutorial
ini, Anda akan memodifikasi aplikasi Pendaftaran
Kelas Kampus. User akan memilih sebuah kelas pada kontrol GridView pada saat aplikasi dijalankan
seperti ditunjukkan pada Gambar 5.54 dan klik sebuah link untuk melanjutkan.
Kemudian browser akan menavigasi ke halaman Web kedua, seperti ditunjukkan pada
Gambar 5.55.
Gambar 5.54 User memilih sebuah matakuliah dan mengklik
link untuk melihat daftar mahasiswa yang terdaftar untuk matakuliah tersebut
Langkah-Langkah Tutorial
Langkah 1: Tutup Visual Studio, buat salinan dari aplikasi Pendaftaran Kelas Kampus, dan ganti
nama salinan itu dengan Pendaftaran
Kelas Kampus 2.
Langkah 2: Tambahkan sebuah Web form dengan nama TampilDaftar.aspx pada situs Web. Buka
form pada Design view.
Langkah 3: Pindahkan kontrol dgvKelas
pada Default.aspx ke TampilDaftar.aspx.
Langkah 4: Pindahkan kontrol PendaftaranDataSource
Langkah 5: Pada Source view, modifikasi bagian SelectParameters dari kontrol PendaftaranDataSource menjadi seperti
ini:
<SelectParameters>
<asp:QueryStringParameter
Name="IdMtKuliah"
QueryStringField="ID"
/>
</SelectParameters>
Langkah 6: Pindahkan heading berikut dari Default.aspx ke TampilDaftar.aspx.
<h3>Pendaftaran Kelas:</h3>
Langkah 7: Tambahkan pemecah paragraf dan kontrol LinkButton di bawah Default.aspx:
<p />
<asp:LinkButton
ID="btnTampilPendaftaran"
runat="server"
O
nClick="btnTampilPendaftaran_Click">Tampilkan
Pendaftaran Kelas Terseleksi
</asp:LinkButton>
Langkah 8: Pada file kode-belakang dari halaman yang sama,
ciptakanlah sebuah event handler Click untuk kontrol tombolTampilPendaftaran sehingga user dapat menavigasi ke halaman TampilDaftar.aspx:
protected void
btnTampilPendaftaran_Click(object sender, EventArgs e)
{
Response.Redirect("TampilDaftar.aspx?ID="
+ dgvKuliah.SelectedValue.ToString());
}
Perhatikan
bahwa statemen itu melewatkan sebuah string query (?ID) kepada halaman baru,
yang membaca nilai IdMtKuliah dari
properti SelectedValue dari grid.
Langkah 9: Simpan halaman dan lihat Default.aspx pada browser. Pilih sebuah matakuliah pada grid dan
klik link untuk melihat daftar mahasiswa yang terdaftar untuk kuliah tersebut.
No comments:
Post a Comment