Использование фильтра отношений в коде в 2sxc - PullRequest
0 голосов
/ 03 июля 2018

Я пытался использовать фильтр отношений в коде, где я хотел, чтобы некоторые местоположения были сгруппированы по регионам, поэтому в основном что-то вроде:

  • Регион 1
    • адрес 1
    • адрес 2
    • адрес 3
  • Регион 2
    • адрес 4
    • адрес 5

Так что в основном он должен делать то же самое, за исключением запроса по региону. Вот что я придумал:

@{
    var someAddresses = App.Query["FilterAddresses"]["ListContent"];
    someAddresses.Filter = region.RegionName;
    Data.In.Add("someAddresses", someAddresses["Default"]);
}
@foreach (var pc in AsDynamic(someAddresses.List)) {
    <li>@pc.Naam</li>
}

Однако там написано:

CS1061: ToSic.Eav.DataSources.IDataStream не содержит определения для фильтра.

Так должно ли быть что-то еще?

1 Ответ

0 голосов
/ 04 июля 2018

Вы не даете нам много кода, чтобы помочь вам ...

Вот что работает для меня, но это не основано на запросе. Однако, это должно работать:

@{
    var organismes = (IEnumerable<dynamic>)AsDynamic(App.Data["Organismes"])
        .Where(m => (m.Montrer == true ));

    var groupements = organismes
        .OrderBy(n => n.Nom)
        .GroupBy(i => i.Nom.Substring(0, 1).ToUpper());
}

@foreach (var grp in groupements)
{
     <strong>@grp.Nom</strong>
     <ul>
        @foreach (var term in grp)
        {
             <li>@var.Nom</li>
        }
     </ul>
}

Возможно, вы могли бы получить что-то подобное:

@{
    var someAddresses = (IEnumerable<dynamic>)AsDynamic(App.Query["FilterAddresses"]["ListContent"]);

    var groupedAddresses = someAddresses
        .GroupBy(r => r.Region);

}

@foreach (var region in groupedAddresses)
{
     <strong>@region.Name</strong> //Name of the region, adapt to the real variable
     <ul>
        @foreach (var address in region)
        {
             <li>@address.Street, @address.City(@address.Zip)</li> // each field for each address in each region
        }
     </ul>
}

ОБНОВЛЕНИЕ: используйте GroupBy для второго объекта.

...