powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / передача параметров в метод сервиса blazor и вызов компонентов
22 сообщений из 72, страница 3 из 3
передача параметров в метод сервиса blazor и вызов компонентов
    #39980827
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
jeanssp
Код: c#
1.
Types type = new Types();

нескромный вопрос, у тебя Types является структурой?

Это класс из модели бд.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39980866
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
Это класс
jeanssp
Код: c#
1.
                typelist.Add(type);

jeanssp
Код: c#
1.
typelist.Distinct()

Я ни в коем случае не хочу тебя обидеть, я пытаюсь помогать, потому что вижу, что ты стремишься к тому, чтобы что-то сделать, что-то изучить, а не просишь, чтобы всё сделали за тебя. Но тебе наверное рановато пытаться разобраться в тонкостях работы сервисов блейзора, пока нет понимания элементарных основ типов в .NET. Стоит сесть с хорошим учебником, внимательно его изучить, поделать простые примеры.

В приведенном коде ты добавляешь в список один и тот же объект несколько раз. Потом делаешь Distinct, который производит сравнение по ссылке и видит, что объект в списке у тебя только один. Тебе нужно понимать, чем отличаются классы от структур, что такое сравнение по ссылке и по значению, что такое экземпляр класса, что такое сравнение эквивалентности. Это всё - первые страницы учебника.
Мы готовы отвечать тебе на сложные вопросы, но не готовы читать вводные лекции по C#
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39982380
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Я совершенно не обижаюсь, наоборот , очень благодарен за помощь. Я хочу иметь этот инструмент(интернет магазин ) в своем распоряжении, заодно приобрести профессиональные знания, а то мало ли как жизнь повернется. При этом одновременно приходится выполнять множество текущих задач и поэтому не каждый день получается программировать. . Я изучал разные курсы.А. Шевчука смотрел, нравится сайт metanit. Хочу изучать .Net именно на себе. Написал очередной код, но он опять выдает ошибку.
Код: c#
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.
@using jeansBlazorAsh.Data
@using jeansBlazorAsh.Models
@if (ObjGoods == null)
{
    <p><em>Loading....</em></p>
}
else
{
    <div class="container-fluid">
        <div class="row">
            <div class="col">
                <nav class="navbar navbar-expand-lg navbar-light bg-light">
                   
                    <div class="container" name="unitsCheckboxDiv">
                       
                        
                        @foreach (ViewGoodsStocksMvc type in typelistgroup)
                        {
              
                            <label><input type="checkbox" value="@type.TypeId" />@type.Type</label>
                        }

                    </div>
                </nav>
            </div>
        </div>
    </div>
}


@code {


    [Parameter]
    public List<ViewGoodsStocksMvc> ObjGoods { get; set; }

    public List<ViewGoodsStocksMvc> typelistgroup = (from good in ObjGoods
                                                     select new
                                                     {
                                                         _typeID = good.TypeId,
                                                         _typeName = good.Type
                                                     }).Distinct();


    }


Компилятор подчеркивает ObjGoods и пишет A field initializer cannot reference the nonstatic field, method, or property.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39982385
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
Компилятор подчеркивает ObjGoods и пишет A field initializer cannot reference the nonstatic field, method, or property.
Ну опять же, что требуется - перевести с английского сообщение об ошибке?
Нельзя использовать инициализатор, который использует свойства экземпляра (ObjGoods в данном случае).

В данном случае твоя логика вообще непонятна. Что ты хотел сказать этой инициализацией?
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39982386
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
нравится сайт metanit
метанит, увы, крайне примитивен (ну он так и задуман)

Ты бы лучше прочел учебник по C#. Троелсена, например.
Shocker.Pro
Тебе нужно понимать, чем отличаются классы от структур, что такое сравнение по ссылке и по значению, что такое экземпляр класса, что такое сравнение эквивалентности. Это всё - первые страницы учебника.
Мы готовы отвечать тебе на сложные вопросы, но не готовы читать вводные лекции по C#
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39982390
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, Я вообще запутался в структуре blazor. В Windows Forms все было понятно, а здесь не могу разобраться , где можно создавать метод, где нельзя, как его вызвать в блоке кода?
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39982395
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторяю, ты не в структуре blazor запутался. Ты то в null пытаешься значение добавить, то один и тот же объект добавляешь в List, то пытаешься инициализировать поле чем попало. Это не про blazor и не про winforms, это про понимание базовых вещей в C# и .NET. Поэтому ты смело можешь от blazor отвлечься, дальше ты толком все равно не продвинешься. Начни с простого.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39982397
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, Ладно, скачал книгу, читаю.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39984906
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно надо двигаться . хоть как то. Вот так заработало.
Код: c#
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.
@using jeansBlazorAsh.Data
@using jeansBlazorAsh.Models
@if (ObjGood == null)
{
    <p><em>Loading....</em></p>
}
else
{
<div class="container-fluid">
    <div class="row">
        <div class="col">
            <nav class="navbar navbar-expand-lg navbar-light bg-light">
                <div class="container">
                    @foreach (Types gt in GetTypes(ObjGood).Distinct<Types>())
                    {
                    <label><input type="checkbox" value=" @gt.TypeId" />@gt.Type</label>
                    }
                </div>
            </nav>
        </div>
    </div>
</div>
}
@code {
    [Parameter]
    public List<ViewGoodsStocksMvc> ObjGood { get; set; }
    public IEnumerable<Types> GetTypes(IEnumerable<ViewGoodsStocksMvc> goodList) =>
       goodList.Select(g => new Types { TypeId = g.TypeId, Type = g.Type })
        .GroupBy(x => x.Type)
        .Select(x => x.First());
}


пользователь fkthat - спасибо
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39984935
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем тут Distinct()? Во-первых он тут не работает, а во-вторых и не нужен теперь.

И группировку лучше выполнять по TypeId, а не по Type
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39985243
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
А зачем тут Distinct()? Во-первых он тут не работает, а во-вторых и не нужен теперь.

И группировку лучше выполнять по TypeId, а не по Type

Это я понимаю, это у меня от прошлых экспериментов остался ненужный код.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39996106
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я наконец то написал работающий код, позволяющий делать выбор категорий и фильтровать данные при помощи "radio". Хотел сначала checkbox, но не получается привязать к нему значение value . Привязывается только true и false. (потом буду разбираться)Радио создаются динамически в цикле foreach. В компонент с этими radio передается отфильтрованный с помощью linq параметр.
Проблема в том, что при первом запуске программы, все радио выводятся неотмеченными. Мне так и надо. Потом, когда я меняю группы категорий, при новом выводе, радио уже отмечены(если перед этим я их отметил) . Мне нужно чтобы все было каждый раз как первый раз. В какую сторону копать? Жизненный цикл компонентов?
Заранее благодарю! Максимальное уважение! Александр.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #39997049
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
при первом запуске программы
оперировать таким понятием в веб приложении бессмысленно. Изучай жизненный цикл запроса, а также осознай, что пользователей (клиентов, браузеров) много, а твоя, как ты выразился "программа" - одна на всех. Если у тебя какой-то пользователь что-то делает, а другой пользователь (ты можешь открыть сайт из другого браузера или даже на другой вкладке) параллельно это видит, значит ты все сделал неправильно.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #40001125
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет Всем! Почему-то не получается вывести объект в родительский компонент. При нажатии на кнопку на ребенке страница обновляется и отмеченные флажки пропадают.
Вот ребенок.
Код: html
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.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
@page "/selectsizes"
@using jeansBlazorAsh.Data
@using jeansBlazorAsh.Models

@if (GetSize == null)
{
    <p><em>Loading....</em></p>
}
else
{

    <div class="container-fluid">
        <div class="row">
            <div class="col">
                <nav class="navbar navbar-expand-lg navbar-light bg-light">


                    <form>
                        @foreach (var ws in GetSize)
                        {
                            <label class="label-type">

                                <input type="checkbox"
                                       @onchange= "EventArgs=> { CheckboxClicked(ws.WidhtId.ToString(), EventArgs.Value); }"/>

                                @ws.Widht
                                <span class="checkmark"></span>
                            </label>
                            
                        }
                        @if (SizeIdList.Count != 0)
                        {
                            <button @onclick="@OnClick">Применить фильтр </button>
                        }
                        <div>
                            @foreach(var s in SizeIdList)
                            {
                                @s
                            }
                        </div>

                    </form>
                    
                </nav>
            </div>
        </div>
    </div>
}

@code {
    [Parameter]
    public EventCallback<List<string>> OnClickCallback { get; set; }
    void OnClick()
    {
        OnClickCallback.InvokeAsync(SizeIdList);
    }
    [Parameter]
    public IEnumerable<WidhtSizes> GetSize { get; set; }



    public List<string> SizeIdList = new List<string>();
    //public string SizeID { get; set; }
    void CheckboxClicked(string sizeID, object checkedValue)
    {

        if ((bool)checkedValue)
        {
            if (!SizeIdList.Contains(sizeID))
            {
                SizeIdList.Add(sizeID);
            }
        }
        else
        {
            if (SizeIdList.Contains(sizeID))
            {
                SizeIdList.Remove(sizeID);
            }
        }
      
    }

}


По кнопке применить фильтр, объект list<string > должен быть выведен в родитель.
Код: html
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.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
@page "/"
@inherits LayoutComponentBase
@using jeansBlazorAsh.Pages
@using jeansBlazorAsh.Data
@using jeansBlazorAsh.Models

@inject NavigationManager NavigationManager
@inject GoodStockService objGoodStockService
<div class="container-fluid">
   mn,mn,mn,mn,mn
    <ul>
        @if (SizeIdList.Count != 0)
        {
            @foreach (var s in SizeIdList)
            {
                <li>@s</li>
            }
        }

    </ul>
</div>

@if (objGoods == null)
{
    <p><em>Loading....</em></p>
}
else
{


    <div class="container-fluid">
        <div class="row">
            <div class="col">
                <nav class="navbar navbar-expand-lg navbar-light bg-light">
                    <a class="navbar-brand" href="#">40ПАР</a>
                    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
                            aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                        <span class="navbar-toggler-icon"></span>
                    </button>
                    <div class="collapse navbar-collapse" id="navbarSupportedContent">
                        <ul class="navbar-nav mr-auto">
                            <li class="nav-item active">
                                <a class="nav-link" href="#">Главная <span class="sr-only">(current)</span></a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link" href="#">О нас</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link" href="#">Доставка</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link" href="#">Контакты</a>
                            </li>
                        </ul>

                        <form class="form-inline my-2 my-lg-0">
                            <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
                            <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
                        </form>

                        <ul class="navbar-nav">
                            <li class="nav-item">
                                <a href="#" class="nav-link">
                                    <i class="fas fa-shopping-cart text-dark"><span class="badge">4</span></i>
                                </a>
                            </li>
                            <li>
                                <a href="#" class="nav-link">
                                    <span>Войти</span>
                                </a>
                            </li>
                            <li>
                                <a href="#" class="nav-link">
                                    <span>Регистрация</span>
                                </a>

                            </li>
                        </ul>
                    </div>
                </nav>
            </div>
        </div>
    </div>
    <div>
        <RadioGender OnClickCallback="@CheckChanged"></RadioGender>
    </div>
    <div>
        <SelectTypes Types="@GetTypes(objGoods)" OnClCallback="@ShowSizes" />
    </div>
    <div>
        <SelectSizes GetSize="GetSize(objGoods,typeId)" OnClickCallback="@AddNewSize" />
    </div>

    <div>
        <GoodStock ObjGoods="@objGoods"></GoodStock>
    </div>
    
            
        }

@code {
    #region вызов из сервиса objGoods к-т GoodStock
    protected override async Task OnInitializedAsync()
    {
        // запускаем без ожидания, для отзывчивости UI
        await InitAsync();
    }
    IEnumerable<ViewGoodsStocksMvc> objGoods;

    private async Task InitAsync()
    {
        objGoods = await objGoodStockService.GetGoodsAsync(radioItem);
        await InvokeAsync(StateHasChanged);

    }
    #endregion
    #region для к-та группа типов RadioGender
    string radioItem = "1";
    //private string checkChanged;
    private void CheckChanged(ChangeEventArgs e)
    {
        radioItem = e.Value.ToString();
        InitAsync();
    }
    #endregion

    #region для к-та выбор типа  SelectTypes
    int typeId;
    private void ShowSizes(ChangeEventArgs e)
    {
        typeId = Convert.ToInt32(e.Value);
    }
    public IEnumerable<Types> GetTypes(IEnumerable<ViewGoodsStocksMvc> goodList) =>
  goodList.Select(g => new Types { TypeId = g.TypeId, Type = g.Type })
   .GroupBy(x => x.TypeId)
   .Select(x => x.First());
    #endregion
    #region for comp SelectSizes
    WidhtSizes _size = new WidhtSizes();
    private List<WidhtSizes> sizes = new List<WidhtSizes>();
    private void AddNewSize(WidhtSizes size)
    {
        _size = size;
        sizes.Add(_size);
    }

    public IEnumerable<WidhtSizes> GetSize(IEnumerable<ViewGoodsStocksMvc> goodList, int typeID) =>
        goodList.Where(x => x.TypeId == typeID)
        .Select(x => new WidhtSizes { WidhtId = x.WidhtId, Widht = x.Widht })
        .GroupBy(x => x.WidhtId)
        .Select(x => x.First());


    private List<string> SizeIdList = new List<string>();

    private async Task AddNewSize(List<string> sizeList)
    {
         SizeIdList =  sizeList;
       
    }
    #endregion
}


Здесь я пытаюсь вывести этот объект
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 <ul>
        @if (SizeIdList.Count != 0)
        {
            @foreach (var s in SizeIdList)
            {
                <li>@s</li>
            }
        }

    </ul>


Потом планирую применить его как фильтр.
Мне кажется результат появляется на долю секунды, а потом все пропадает.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #40001171
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял в чем дело. Дело не в коде, а в кнопке. Любая кнопка без всего обновляет страницу. Разобрался.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #40001172
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверное все-таки не любая, а кнопка типа submit внутри формы
нафига тебе в блазоре формы и сабмиты?
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #40001175
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Пользователь отмечает чекбоксы с размерами одежды, появляется кнопка "применить фильтр". Надеюсь уже скоро выложу на хостинг, тогда покажу. Спасибо за ответ!
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #40001178
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это не ответ на мой вопрос
вопрос - для чего тебе нужны тэги <form> и кнопки <button type="submit">
ты вообще знаешь их смысл?
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #40001206
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, Смысл этих тегов. Submit отправляет данные на сервер. Разницу между form и div не очень понимаю. Понимаю, что они мне не нужны. Я их просто откуда скопировал, не помню. Я все уберу, когда буду делать нормальный фильтр.
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #40001211
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jeanssp
Submit отправляет данные на сервер. Разницу между form и div не очень понимаю
Понятно. Просто убери form и type="submit"
...
Рейтинг: 0 / 0
передача параметров в метод сервиса blazor и вызов компонентов
    #40007330
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникла очередная задача. Есть объект objGoods, который является основой для карточки товаров.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
 IEnumerable<ViewGoodsStocksMvc> objGoods;

    private async Task InitAsync()
    {
        objGoods = await objGoodStockService.GetGoodsAsync(radioItem);
        await InvokeAsync(StateHasChanged);

    }


Есть компонент blazor, на котором располагаются чекбоксы , которые пользователь должен отметить , что бы выбрать категории товара.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<div class="col">
                
                    @foreach (Types gt in Types) //Types это лист категорий
                    {
                    <label class="label-type">
                        <input type="checkbox"
                               name="type1"
                               @onchange="eventArgs => { OnChange(gt.TypeId, eventArgs.Value); }">
                        @gt.Type
                        <span class="checkmark"></span>
                    </label>
                    }
                
        </div>


Чекбоксы отрисовываются динамически.
Каждый чекбокс имеет два параметра. 1 параметр-ID категории TypeId. 2 параметр-bool Value . Параметры я загоняю в коллекцию при помощи метода, привязанного к событию @onchange.
Код: c#
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.
@code {
    [Parameter]
    public IEnumerable<Types> Types { get; set; }
    [Parameter]
    public EventCallback<List<int>> OnChangeCallBack { get; set; }
    public List<int> TypeIdList = new List<int>();
    void OnChange(int typeID, object checkedValue)
    {
        if ((bool)checkedValue)
        {
            if (!TypeIdList.Contains(typeID))
            {
                TypeIdList.Add(typeID);
            }
        }
        else
        {
            if (TypeIdList.Contains(typeID))
            {
                TypeIdList.Remove(typeID);
            }
        }
        OnChangeCallBack.InvokeAsync(TypeIdList ); // Это для отправки в родительский компонент
    }

}



При помощи
Код: c#
1.
OnChangeCallBack.InvokeAsync(TypeIdList )


отправляю эту коллекцию в родительский компонент Index.
В родительском компоненте мне надо получить размеры одежды, которые принадлежат выбранным пользователем категориям. Я это делаю так.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 private void ShowSizes( List<int> TypeIdList) // Параметр метода это лист категорий 
    {
        SizeList = new List<WidhtSizes>(); // Мне надо получить лист размеров Widht это тоже самое что Size (размер джинсов)

        foreach (int typeId in TypeIdList)
        {
            IEnumerable<WidhtSizes> ws =
         objGoods.Where(x => x.TypeId == typeId)
         .Select(x => new WidhtSizes { WidhtId = x.WidhtId, Widht = x.Widht })
         .GroupBy(x => x.WidhtId)
         .Select(x => x.First());
            SizeList = SizeList.Union(ws);

        };

    }


Дальше я этот SizeList отправляю в другой дочерний компонент (SelectSize), где из него должны получиться чекбоксы с выбором размеров одежды.
Причем группировку у меня получилось сделать только в дочернем компоненте.
Код: c#
1.
2.
 sizelist.GroupBy(x => x.WidhtId) // Widht это тоже самое что Size (размер джинсов)
        .Select(x => x.First());


Все работает, но плохо. Через раз. Я чувствую , что должен быть какой то лучший способ передачи List в качестве параметра запроса Linq.
Я читал про способ с использованием интерфейса IQueryable , но реализовать его не смог.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
передача параметров в метод сервиса blazor и вызов компонентов
    #40135717
jeanssp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
jeanssp
Простите, А как вызвать метод внутри компонента при смене параметра?
Через сеттер. Параметр - это обычное свойство класса, тут никакого волшебства.

Только с асинхронностью надо смотреть, что там в задаче. Если GetGoods - быстрый метод, можно просто вызвать его синхронно. Если там IO - лучше запустить задачу без ожидания, а по окончании InvokeAsync(StateHasChanged). (правда, непонятно, почему он тогда сам не является асинхронным, но это другой вопрос)


Сегодня прочитал, что нельзя так было делать. От этого приложение и зависало.
В сетер ничего пихать нельзя. Нужно использовать жизненный цикл.
...
Рейтинг: 0 / 0
22 сообщений из 72, страница 3 из 3
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / передача параметров в метод сервиса blazor и вызов компонентов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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