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

Код: 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
24.03.2010, 00:30
    #36538386
bbbdum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ группирование записей
Код: 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
24.03.2010, 22:27
    #36540982
konstsch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ группирование записей
ничего не понятно
...
Рейтинг: 0 / 0
24.03.2010, 23:02
    #36541034
konstsch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ группирование записей
Не понял то, как это можно использовать со стандартными asp.net-овскими компонентами для данных
...
Рейтинг: 0 / 0
24.03.2010, 23:39
    #36541081
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ группирование записей
konstschНе понял то, как это можно использовать со стандартными asp.net-овскими компонентами для данных
IEnumerable прекрасно биндится к ним.
...
Рейтинг: 0 / 0
24.03.2010, 23:57
    #36541095
konstsch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ группирование записей
примеры бы хотелось увидеть
...
Рейтинг: 0 / 0
25.03.2010, 00:45
    #36541138
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ группирование записей
Такой?
Код: 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
25.03.2010, 11:07
    #36541604
konstsch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ группирование записей
В таком как я понимаю будет выведено только поле по которому сгруппировали
Интересует же вывод как в первом сообщении.
...
Рейтинг: 0 / 0
25.03.2010, 12:49
    #36541960
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ группирование записей
тут пример я писал
...
Рейтинг: 0 / 0
26.03.2010, 01:44
    #36543527
bbbdum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ группирование записей
примерно так

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
26.03.2010, 16:01
    #36545044
konstsch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LINQ группирование записей
а почему бы Repeater1_ItemDataBound не сделать так:

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

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


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