Bagaimana cara menggunakan LinqServerModeDataSource
untuk menyisipkan atau mengedit baris tabel data yang mendasarinya ketika saya tidak menampilkan semua bidang tabel tersebut di ASPxGridView
?
Pertanyaan serupa telah ditanyakan, tapi ini bukan duplikat. Misalnya, yang ini menanyakan tentang LinqServerModeDataSource
dan yang diterima jawaban memberitahu cara menggunakan SqlDataSource
biasa.
Saya memiliki ASPxGridView
yang terhubung ke tabel melalui LinqServerModeDataSource
. Tapi saya tidak menampilkan semua kolom di grid. Misalnya, ada kolom untuk tanggal pembuatan dan beberapa lainnya yang tidak perlu diketahui pengguna. Saya mengizinkan pengeditan sebaris di kisi, namun pada peristiwa Inserting
atau Updating
, nilai baru yang diteruskan hanyalah kamus dari nilai yang ditampilkan di kisi.
Bagaimana dengan nilai-nilai lainnya? Saya berharap dapat menetapkan nilai apa pun untuk baris data yang mendasarinya secara terprogram di pengendali peristiwa, terlepas dari apakah nilai tersebut ditampilkan dan diedit oleh pengguna. Bagaimana cara saya mendapatkan akses ke sana dan menetapkan nilai lainnya di acara LinqServerModeDataSource
? Saya tidak beruntung membaca dokumentasi devexpress.
Saya menduga pasti ada kelas Linq yang terhubung ke tabel yang dapat saya gunakan dalam acara tersebut, mirip dengan acara Selecting
. Tapi bagaimana caranya?
Berikut tampilan event handler Selecting
... Apakah tidak ada antarmuka serupa yang dapat saya gunakan untuk mengakses data dasar di event lain?
protected void dsRecipients_Selecting(object sender, DevExpress.Data.Linq.LinqServerModeDataSourceSelectEventArgs e)
{
SmsRecipientsDataContext context = new SmsRecipientsDataContext();
IQueryable<NotificationParty> val = context.NotificationParties;
int notificationGroupID = Convert.ToInt32(Context.Session["NotificationGroupID"]);
val = val.Where(n => n.NotificationGroupID == notificationGroupID && n.Active);
e.KeyExpression = "ID";
e.QueryableSource = val;
}