Как мне использовать 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;
}