Erstellen Sie eine InputSelect -Komponente, die Listen mit Blazor akzeptiert
Posted: 25 Feb 2025, 08:53
mit Blazor InputSelect Sie haben Listenelemente in der Komponente ChildContent Itereriert Dies könnte eine Liste von jedem Objekt akzeptieren, das in der Auswahl gerendert werden kann. Der Code könnte dem folgenden Anschluss sein: < /p>
( Hinweis: Ich habe die für Eigenschaft verwendet, um den Compiler zu helfen, den Typ der CountryId und auch zur Validierung zu schließen. Dies ist @Ttyparam der Komponente.)
Ich habe so viele Ansätze ausprobiert, aber keiner der Arbeiten, also erkläre ich sie unten:
< Br /> Ich habe versucht, dynamisch für die Liste zu verwenden, aber es scheint, dass Blazor keine dynamischen Typen unterstützt, da im Razor -generierten Code ein Fehler vorliegt.
Ich habe versucht, mehrere @TypeParam < /code> für die Komponente zu verwenden, einen für den Wert und eine für die Listenelemente. Und es scheint, dass es es auch nicht unterstützt.
< /ul>
und < /p>
Mein Ziel ist es, eine Liste eines beliebigen Typs an InputSelect zu senden, während @typeparam zur Bindung verwendet wird.
Code: Select all
< /code>
oder sogar diese: < /p>
Ich habe so viele Ansätze ausprobiert, aber keiner der Arbeiten, also erkläre ich sie unten:
< Br /> Ich habe versucht, dynamisch für die Liste zu verwenden, aber es scheint, dass Blazor keine dynamischen Typen unterstützt, da im Razor -generierten Code ein Fehler vorliegt.
Ich habe versucht, mehrere @TypeParam < /code> für die Komponente zu verwenden, einen für den Wert und eine für die Listenelemente. Und es scheint, dass es es auch nicht unterstützt.
< /ul>
und < /p>
Code: Select all
@foreach (var item in List)
{
< option value="???">???
}
@code{
[Parameter] public Expression? For { get; set; }
[Parameter] public List List { get; set; }// or List
[Parameter] public Expression? ValueField { get; set; }
[Parameter] public Expression? DisplayField { get; set; }
}