powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ группирование записей
11 сообщений из 11, страница 1 из 1
LINQ группирование записей
    #36533587
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть таблица

Код: plaintext
1.
2.
3.
id
group
caption
text

нужно сгруппировать все записи по group и вывести примерно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
группа_1
 заголовок_1 text_1
 заголовок_3 text_3
 заголовок_6 text_6

группа_2
 заголовок_2 text_2
 заголовок_4 text_4
 заголовок_5 text_5

как лучше сделать?
...
Рейтинг: 0 / 0
LINQ группирование записей
    #36538386
Фотография bbbdum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var q = from x in Table1 group x by x.GroupId into g
select new{Key = g.Key , Group = g}

foreach (var g in q)
    {
         foreach (var n in g.Group)
        {
            Console.WriteLine(n.Name);
        }
    }
...
Рейтинг: 0 / 0
LINQ группирование записей
    #36540982
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ничего не понятно
...
Рейтинг: 0 / 0
LINQ группирование записей
    #36541034
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял то, как это можно использовать со стандартными asp.net-овскими компонентами для данных
...
Рейтинг: 0 / 0
LINQ группирование записей
    #36541081
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
konstschНе понял то, как это можно использовать со стандартными asp.net-овскими компонентами для данных
IEnumerable прекрасно биндится к ним.
...
Рейтинг: 0 / 0
LINQ группирование записей
    #36541095
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примеры бы хотелось увидеть
...
Рейтинг: 0 / 0
LINQ группирование записей
    #36541138
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой?
Код: plaintext
1.
2.
3.
4.
var q = from x in Table1 group x by x.GroupId into g
select new{Key = g.Key , Group = g}
DataGrid1.DataSource = q.ToList();
DataBind();
...
Рейтинг: 0 / 0
LINQ группирование записей
    #36541604
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таком как я понимаю будет выведено только поле по которому сгруппировали
Интересует же вывод как в первом сообщении.
...
Рейтинг: 0 / 0
LINQ группирование записей
    #36541960
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут пример я писал
...
Рейтинг: 0 / 0
LINQ группирование записей
    #36543527
Фотография bbbdum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примерно так

default.aspx
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<form id="form1" runat="server">
    <div>
        <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
            <ItemTemplate>
            Gruop <asp:Label ID="LabelGroupId" runat="server" Text='<%# Eval("GroupId") %>'  />
                <asp:GridView ID="GridView1" runat="server">
                </asp:GridView>
            </ItemTemplate>
        </asp:Repeater>
    </div>
    </form>
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            var q = from x in GetData()
                    group x by x.Group into g
                    select new { GroupId = g.Key };
            Repeater1.DataSource = q;
            Repeater1.DataBind();
        }
    }

    protected void Repeater1_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
    {

        var grid = e.Item.FindControl("GridView1") as GridView;
        var id = e.Item.FindControl("LabelGroupId") as Label;
        if (!string.IsNullOrEmpty(id.Text))
        {
            var data = GetDataById(Int32.Parse(id.Text));
            grid.DataSource = data;
            grid.DataBind();
        }

    }

    private IEnumerable<Rec> GetDataById(int p)
    {
        return GetData().Where(x => x.Group == p);
    }
    private IEnumerable<Rec> GetData()
    {
        for (int i = 0; i < 9; i++)
        {
            yield return new Rec
            {
                Id = i,
                Group = i % 3,
                Caption = "Caption" + i,
                Text = "Text" + i,
            };
        }
    }
    class Rec
    {
        public int Id { get; set; }
        public int Group { get; set; }
        public string Caption { get; set; }
        public string Text { get; set; }
    }
}
...
Рейтинг: 0 / 0
LINQ группирование записей
    #36545044
Фотография konstsch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему бы Repeater1_ItemDataBound не сделать так:

Код: plaintext
1.
grid.DataSource = e.Item.DataItem.g
grid.DataBind();

?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ группирование записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]