ฉันจะใช้ LinqServerModeDataSource
เพื่อแทรกหรือแก้ไขแถวของตารางข้อมูลพื้นฐานได้อย่างไร ในเมื่อฉันไม่ได้แสดงฟิลด์ทั้งหมดของตารางนั้นใน ASPxGridView
มีการถามคำถามที่คล้ายกัน แต่นี่ไม่ใช่คำถามที่ซ้ำกัน ตัวอย่างเช่น อันนี้ ถามเกี่ยวกับ LinqServerModeDataSource
และที่ยอมรับ คำตอบบอกวิธีใช้ SqlDataSource
ธรรมดา
ฉันมี ASPxGridView
เชื่อมต่ออยู่กับโต๊ะผ่าน LinqServerModeDataSource
แต่ฉันไม่แสดงคอลัมน์ทั้งหมดในตาราง ตัวอย่างเช่น มีคอลัมน์สำหรับวันที่สร้างและคอลัมน์อื่นๆ ที่ผู้ใช้ไม่จำเป็นต้องทราบ ฉันอนุญาตให้แก้ไขแบบอินไลน์ในตาราง แต่ในเหตุการณ์ Inserting
หรือ Updating
ค่าใหม่ที่ส่งผ่านเป็นเพียงพจนานุกรมของค่าที่แสดงในตาราง
แล้วค่าอื่นๆล่ะ? ฉันคาดหวังว่าจะสามารถตั้งค่าใด ๆ สำหรับแถวข้อมูลพื้นฐานโดยทางโปรแกรมในตัวจัดการเหตุการณ์ ไม่ว่าค่าเหล่านั้นจะถูกแสดงและแก้ไขโดยผู้ใช้หรือไม่ก็ตาม ฉันจะเข้าถึงและตั้งค่าอื่นๆ ในเหตุการณ์ของ LinqServerModeDataSource
ได้อย่างไร ฉันไม่มีโชคในการอ่านเอกสาร devexpress
ฉันเดาว่าจะต้องมีคลาส Linq ที่เชื่อมต่อกับตารางที่ฉันสามารถใช้ในกิจกรรมเหล่านั้นได้ คล้ายกับเหตุการณ์ Selecting
แต่อย่างไร?
นี่คือลักษณะของตัวจัดการเหตุการณ์ Selecting
... ไม่มีอินเทอร์เฟซที่คล้ายกันที่ฉันสามารถใช้เพื่อเข้าถึงข้อมูลที่ซ่อนอยู่ในเหตุการณ์อื่น ๆ หรือไม่?
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;
}