Я задал этот вопрос на форумах Telerik без ответа, поэтому я клянусь с вами.
Я видел эту тему раньше, но без ответа, поэтому я решил определить проблему как можно проще.
У меня есть команда LINQ, создающая запрос:
var gridData = от au в dc.aspnet_Users
присоединиться к aur в dc.aspnet_UsersInRoles
на au.UserId равно aur.UserId
присоединиться к ar в dc.aspnet_Roles
на aur.RoleId равно ar.RoleId
присоединяюсь в dc.aspnet_Memberships
на au.UserId равно am.UserId
выберите новый
{
au.UserName,
ar.RoleName,
am.Email,
am.IsApproved,
am.IsLockedOut
};
ВАЖНО ТО, ЧТО ЭТО ИСПОЛЬЗУЕТ БОЛЬШЕ, ЧЕМ 1 ТАБЛИЦА.
Примечание. Для доступа к таблицам ролей и пользователей используется стандартная структура членства ASP.NET.
Тогда у меня есть простая RadGrid:
<MasterTableView EditMode="InPlace">
<RowIndicatorColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>
</MasterTableView>
Наконец я связываю данные с сеткой в Page_Load
rgUsers.AutoGenerateColumns = true;
rgUsers.DataSource = gridData.ToList();
rgUsers.DataBind();
rgUsers.EditIndexes.Add(1);
rgUsers.DataBind();
GridView1.AutoGenerateColumns = true;
GridView1.DataSource = gridData.ToList();
GridView1.DataBind();
GridView1.EditIndex=1;
GridView1.DataBind();
Это будет правильно отображать данные из 4 таблиц.
Я включил GridView для сравнения функциональности.
Я также переключил сетку в режим редактирования программно, чтобы убедиться, что это не просто проблема с кнопкой Изменить.
Однако в режиме редактирования поля RadGrid недоступны для редактирования.
Я пробовал следующее:
1) 1) Я могу использовать LinqDataSource, который позволяет редактировать / обновлять НО, только если в запросе LINQ есть только 1 таблица.
2) 2) Я могу использовать ObjectDataSource для набора данных, но еще раз это работает, только если адаптер набора данных обращается к одной таблице.
Я посмотрел на предложенные variouse демонстрации и пример кода, но все они проигнорировали проблему множественных таблиц / Join:
www.telerik.com / сообщество / код-библиотека / САШИ-Аякс / сетки / автоматическая-операция-с-linqdatasource.aspx
demos.telerik.com / САШИ-Аякс / сетки / примеры / dataediting / threelevel / defaultcs.aspx
www.telerik.com / сообщество / код-библиотека / САШИ-Аякс / сетки / автоматическая-операция-с-linqdatasource.aspx
Я не привязан к LINQ. Я очень рад адаптироваться, чтобы получить RadGrid, который может поддерживать обновление и редактирование нескольких таблиц.
Что я должен сделать, чтобы создать RadGrid, который отображает записи, составленные из нескольких таблиц с доступными Update и Edit?
Спасибо за любую помощь
Ричард