Untuk mengedit data di kontrol DataGrid, silakan gunakan kolom "Edit, Perbarui, Batalkan" di "Kolom Tombol". Ini dapat disetel sebagai kontrol DataGrid di generator properti
kontrol DataGrid (ambil nama kontrol dg1 sebagai nama kontrol. contoh ), akan ada satu kolom lagi di kontrol dg1 pada halaman. Setiap item di kolom ini adalah LinkButton/Tombol dengan teks "Edit".
Jika Anda mengklik tombol "Edit" pada sebuah baris, baris tersebut berada dalam mode edit, tombol "Edit" digantikan oleh tombol "Perbarui" dan "Batal", dan semua kolom pembantu data non-baca-saja lainnya di baris tersebut. baris akan diubah menjadi format kontrol TextBox sehingga pengguna dapat mengedit dan memodifikasinya.
Ketika pengguna memodifikasi data kolom data non-read-only (di kontrol TextBox), klik tombol "Perbarui", simpan nilai baru (biasanya ke database), klik tombol "Batal", baris Keluar modus edit.
Untuk mencapai efek peralihan ke mode pengeditan baris dengan mengklik tombol "Edit", metode penanganan kejadian EditCommand dg1 harus ditulis Untuk mencapai efek penyimpanan nilai baru dengan mengklik tombol "Perbarui", metode penanganan kejadian UpdateCommand dari dg1 harus ditulis. Untuk mengklik tombol "Batal" untuk keluar dari mode pengeditan baris, Anda harus mengedit metode penanganan kejadian CancelCommand dari dg1
1) metode penanganan kejadian dg1.EditCommand - masukkan pengeditan baris mode
--------------------------------------------------- ----
private void dg1_EditCommand(sumber objek, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex; //Tetapkan indeks item yang akan diedit
binddg1(); //Metode untuk mengikat data ke dg1. Setelah mengatur item yang akan diedit, memerlukan rebinding dg1
}
--------------------------------------------------- -------
2) metode penanganan kejadian dg1.CancelCommand - Keluar dari mode pengeditan baris
--------------------------------------------------- -------
private void dg_CancelCommand(sumber objek, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex; //Indeks item yang diedit adalah -1, artinya tidak ada item yang diedit.
binddg1(); //Setelah menyetel ulang EditItemIndex, diperlukan rebind dg1
}
--------------------------------------------------- -------
3) metode penanganan kejadian dg1.UpdateCommand - Simpan nilai yang diperbarui. Untuk menyimpan nilai yang diperbarui, Anda harus terlebih dahulu mendapatkan nilai baru ini dari halaman. Dalam metode pemrosesan acara, tiga fungsi utama harus diterapkan:
Dapatkan nilai yang diperbarui, perbarui nilai tersebut, dan keluar dari mode pembaruan baris.
Umumnya, data yang ditampilkan dalam kontrol DataGrid diperoleh dari tabel database, sehingga nilai yang diperbarui juga harus disimpan dalam database. Anda dapat menggunakan pernyataan update Sql atau prosedur tersimpan untuk melakukan pembaruan.
Mendapatkan nilai kolom dari halaman berturut-turut dalam mode edit memerlukan beberapa trik. Ambil kolom pengikatan sebagai contoh:
Dapatkan nilai kolom terikat hanya-baca: e.Item.Cells[indeks kolom].Teks //Kolom bantuan hanya-baca dalam keadaan tidak dapat diedit Dapatkan nilai kolom terikat tidak-baca saja: ((TextBox)(e.Item. Cells[Column Index].Controls[0])).Text //Dalam keadaan pengeditan,
kolom bantuan read-only biasanya merupakan kolom kunci utama dalam tabel digunakan dalam klausa Where pada pernyataan update. Umumnya, mereka tidak diperbarui
.
--------------------------------------------------- --------
private void DataGrid1_UpdateCommand(sumber objek, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//Kolom terikat hanya-baca, dalam keadaan tidak dapat diedit
string customerid = e.Item.Cells[1].Teks;
//Kolom terikat non-baca-saja, dalam status pengeditan
string nama perusahaan = ((Kotak Teks)(e.Item.Sel[2].Kontrol[0])).Teks;
string city = ((TextBox)(e.Item.Cells[3].Controls[0])).Text;
String strSql = "perbarui set pelanggan nama perusahaan = '" + nama perusahaan +
"',kota = '" + kota + "' di mana id pelanggan = '" + id pelanggan + "'";
mengeksekusiSql(strSql); //Jalankan pernyataan pembaruan untuk memperbarui
DataGrid1.EditItemIndex = -1; //Keluar dari mode pengeditan baris
ikatdg1();
}