русский
Germany.ruForen → Архив Досок→ Programmierung

предпочтения по количеству соединений с БД

800  1 2 alle
alex445 коренной житель13.05.23 16:35
NEW 13.05.23 16:35 
in Antwort AlexNek 13.05.23 16:23, Zuletzt geändert 13.05.23 16:57 (alex445)

Что-то типа такого?

https://learn.microsoft.com/en-us/aspnet/core/blazor/compo...


А вообще, вроде это делается чем-то типа переключалок, типа табов

https://getbootstrap.com/docs/5.0/components/navs-tabs/#ja...


Или вообще меню с "шагами", где в зависимости от выбранных опций на текущем шаге вы выбираете форму меню следующего шага. Т.е. вместо того, чтобы создавать динамически, вы создаёте дерево заранее созданных вариантов меню.

https://www.telerik.com/blazor-ui/stepper

https://blazor.radzen.com/steps


По-моему, эти шаги то же самое, как если бы вы везде навтыкали @if, только тут вы будете их втыкать на каждом шаге и анализировать выбор пользователя на предыдущем шаге. Типа


// step 3
<Step>
    @if (userSelectStep1 and userSelectStep2)
        <div>...
    @else if (...)
        <div>...
    @else
        <div>...
</Step>


#21 
AlexNek патриот13.05.23 19:38
AlexNek
NEW 13.05.23 19:38 
in Antwort alex445 13.05.23 16:35, Zuletzt geändert 13.05.23 19:43 (AlexNek)
Что-то типа такого?

нет хотя может идея и такая. Если сильно хочется понять - есть некое описание формы, оно задается странице по открытию и вот получаем форму по описанию.

Есть набор фиксированных компонент, а из них уже собирается то, что нужно пользователю.

Кроме того, есть описание того как ведет себя компонент по мере ввода данных. Типа, в зависимости от возраста могут разрешить вводить данные в поле класс/школа, а могут и запретить.


А вообще, вроде это делается

А что мы собрались обсуждать как это лучше сделать? Пока подобная задача не стоит.

Да и вначале нужно знать, что же действительно нужно пользователю? А после уже думать как это лучше реализовать

#22 
alex445 коренной житель13.05.23 20:45
NEW 13.05.23 20:45 
in Antwort AlexNek 13.05.23 19:38, Zuletzt geändert 13.05.23 20:46 (alex445)
Кроме того, есть описание того как ведет себя компонент по мере ввода данных. Типа, в зависимости от возраста могут разрешить вводить данные в поле класс/школа, а могут и запретить.

Это же триггерами делается или что там в Блейзоре, просто обработчик события changed, чтоли - enabled-disabled одного контрола зависит от данных другого.


есть некое описание формы, оно задается странице по открытию

Ну тогда просто пачка if-ов на рендер компонентов, которые зависят от описания.

#23 
AlexNek патриот13.05.23 22:23
AlexNek
NEW 13.05.23 22:23 
in Antwort alex445 13.05.23 20:45, Zuletzt geändert 13.05.23 22:25 (AlexNek)
Ну тогда просто пачка if-ов

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


Поразмышляете лучше, что мы увидим в логах от приведенных фрагментов кода

https://foren.germany.ru/showmessage.pl?Number=40152904&Bo...

#24 
Murr патриот14.05.23 00:45
Murr
NEW 14.05.23 00:45 
in Antwort alex445 13.05.23 20:45
Ну тогда просто пачка if-ов на рендер компонентов

------

А виртуальную функу в компонент втиснуть не судьба?

Ну тогда посмотри на набор конструкторов...

#25 
AlexNek патриот15.05.23 20:01
AlexNek
NEW 15.05.23 20:01 
in Antwort AlexNek 13.05.23 13:43

Никогда не поверите, по нажатию кнопки с функцией которая ничего не делает происходит офигенное количество действий. В том числе происходит вызов функции ParametersSetAsync.

По названию которой можно сделать предположение что параметры изменились.

---Pressed button Refresh---
ShouldRender Owner
set:[Forecasts, BlazorTestCascadingValue.Data.WeatherForecast[]]
OnParametersSetAsync enter
ShouldRender child
OnAfterRenderAsync Owner: enter
OnAfterRenderAsync child:enter
OnAfterRenderAsync Owner: next render
OnAfterRenderAsync child: next render
ShouldRender Owner
set:[Forecasts, BlazorTestCascadingValue.Data.WeatherForecast[]]
OnParametersSetAsync enter
ShouldRender child
OnAfterRenderAsync Owner: enter
OnAfterRenderAsync child:enter
OnAfterRenderAsync child: next render
OnAfterRenderAsync Owner: next render
OnParametersSetAsync exit
ShouldRender child
OnAfterRenderAsync child:enter
OnAfterRenderAsync child: next render
OnParametersSetAsync exit
ShouldRender child
OnAfterRenderAsync child:enter
OnAfterRenderAsync child: next render</code>
#26 
alex445 коренной житель16.05.23 00:38
NEW 16.05.23 00:38 
in Antwort AlexNek 15.05.23 20:01, Zuletzt geändert 16.05.23 00:40 (alex445)

С какой стати? Может, там проверка на изменение и выход без действий, если параметры не изменились? Типа как сеттер в свойстве с проверкой параметра на равенство текущему значению поля.


А вообще, чего удивительного, что там куча всего вызывается? Он же определяет в каждом компоненте дерева, надо ли его перерисовать или выполнить какое-нибудь действие, назначенное пользователем. При этом там может быть банальная проверка установленного на действие делегата на null, и если null, то ничего не делать - аналогично с сеттерами. Это ещё системные вызовы не показываются, а лишь то, что Блейзору принадлежит.

#27 
AlexNek патриот16.05.23 20:26
AlexNek
NEW 16.05.23 20:26 
in Antwort alex445 16.05.23 00:38
С какой стати?

Всё оказывается описано в доку. Нужно только найти нужную часть и правильно интерпретировать

https://learn.microsoft.com/en-us/aspnet/core/blazor/compo...

https://learn.microsoft.com/en-us/aspnet/core/blazor/compo...

https://learn.microsoft.com/en-us/dotnet/api/microsoft.asp...


#28 
1 2 alle