Как мне отредактировать Teleerik Radgrid при использовании нескольких таблиц в качестве источника данных

StackOverflow https://stackoverflow.com/questions/2372097

  •  24-09-2019
  •  | 
  •  

Вопрос

Я задавал этот вопрос на форумах Teleerik без ответа, поэтому я вам даю.

Я видел эту тему раньше, но без ответа, поэтому я думал, что определишь проблему как можно просто.

У меня есть команда linq, создавая запрос:

var griddata = из au в dcaspnet_users Присоединяйтесь к Aur в dcaspnet_usersinroles
на au.userid равен aur.userid присоединиться к ar в dcaspnet_roles
на Aur.roleid равен ar.roleid присоединиться к Am в dcaspnet_memberships
На au.userid равен am.userid выберите новый {au.username, ar.rolename, am.email, am.isoppleved, am.islockedout};

Важный момент в том, что это использует более 1 таблицы.

Примечание. Это доступ к ролям и таблицам пользователей, используя стандартные стандартные рамки членства ASP.NET.

Тогда у меня простой Radgrid:

<MasterTableView EditMode="InPlace"> 
   <RowIndicatorColumn> 
         <HeaderStyle Width="20px"></HeaderStyle> 
   </RowIndicatorColumn> 
   <ExpandCollapseColumn> 
         <HeaderStyle Width="20px"></HeaderStyle> 
   </ExpandCollapseColumn> 
</MasterTableView> 

Наконец я связываю данные в сетке на странице_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 на DataSet, но еще раз это работает, только если адаптер набора данных доступа к одной таблице.

Я посмотрел на Variouse предложил демонстрацию и пример кода, но все они проигнорировали несколько проблем с таблицей / присоединением:

www.telelik.com/community/code-library/aspnet-ajax/grid/automatic-ogerations-with-linqdatatasource.aspx.

DEMOS.TELERIK.com/aspnet-ajax/grid/example/dataeding/threleLevel/defaultcs.aspx.

www.telelik.com/community/code-library/aspnet-ajax/grid/automatic-ogerations-with-linqdatatasource.aspx.

Я не предан на LINQ. Я очень рад адаптирован, чтобы получить Radgrid, который может поддерживать обновление и редактировать на несколько таблиц.

Что я должен сделать для достижения Radgrid, который отображает записи, состоящие из нескольких таблиц с обновлением и редактированием?

Спасибо за любую помощь Ричарду

Это было полезно?

Решение 3

Оказывается, что запрос LINQ возвращает только анонимный тип, который только для чтения.

Я заменил его с помощью SqldataSource, используя хранимые процедуры, чтобы он сейчас работает.

Спасибо

Другие советы

Вы рассматривали с помощью класса DataView adoview ado.net в сочетании с классом набора данных? Вы должны быть в состоянии потянуть вам данные, используя класс System.data.sqlClient с сохраненным proc, если это тип базы данных, которую вы используете. Вы можете сохранить отношения вашей базы данных в классе DataSet, а класс DataView позволит вам просмотреть данные, как если бы это была одна таблица. Тогда вы должны быть в состоянии связать класс DataView к элементу управления Teleerik.

Почему бы не использовать обязательное использование обязательств по желанию () звонкам? Таким образом, Grid Telerik должен управлять своими государствами редактирования без дополнительной кодировки. Если вы используете Joins для разных источников и настройте команды обновления или вставки, используя соответствующие операторы T-SQL, все должно работать нормально. Проверьте эту демонстрацию для начала:

http://demos.telealik.com/aspnet-ajax/grid/examples/dataediting/extractValues/defaultc.aspx.

Дик

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top