Я использую LinqDataSource вот так:
<asp:LinqDataSource ID="LinqDataSource3" runat="server" OnSelecting="LinqDataSource3_OnSelecting">
</asp:LinqDataSource>
И у меня есть ASPxGridView
<dxwgv:ASPxGridView ID="ASPxGridView2" ClientInstanceName="ASPxGridView2Client"
runat="server" AutoGenerateColumns="False"
DataSourceID="LinqDataSource3">
</dxwgv:ASPxGridView>
Таким образом, я могу динамически добавлять столбцы при обработке события onSelecting:
protected void LinqDataSource3_OnSelecting(object sender, LinqDataSourceSelectEventArgs e)
{
MyModelDataContext context = new MyModelDataContext();
ASPxGridView grid = ASPxPageControl1.TabPages[3].FindControl("ASPxGridView2") as ASPxGridView;
if(grid.Columns.Count == 0){
GridViewDataTextColumn txtColumn1 = new GridViewDataTextColumn();
GridViewDataTextColumn txtColumn2 = new GridViewDataTextColumn();
txtColumn1.FieldName = "UserId";
txtColumn2.FieldName = "FirstName";
grid.Columns.Add(txtColumn1);
grid.Columns.Add(txtColumn2);
}
e.Result = from u in context.Users select new { UserId = u.UserId, FirstName = u.FirstName };
}
Все сделано просто для тестирования, потому что моя идея состоит в том, чтобы иметь решение, позволяющее использовать linqDataSource в качестве источника данных для ASPXGridView, но объединить 2 или 3 таблицы и показать результаты в этой сетке.
Я хочу спросить, является ли это хорошим решением или есть какой-нибудь другой лучший способ представить некоторые представления, сделанные из нескольких таблиц, путем объединения?
Второй вопрос: у меня есть пользователи и группы, и я хотел бы иметь одну таблицу, в которой у меня будет два столбца Имя и Тип
Для групп тип по группам и для пользователей тип будет пользовательский.
У меня нет такой таблицы в моей базе данных
Можно ли создать конкретный класс. Создать список объектов этого класса и заполнить его с помощью запроса linq и использовать его в качестве источника данных linq для этой сетки?
класс будет:
псевдокод:
Class MyClass {
string Type;
string Name;
}
или есть другой способ создать такую таблицу?
Большое спасибо за помощь до свидания