myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Web-Technologien » Blazor: buttonclick soll html select value mit übergeben
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Blazor: buttonclick soll html select value mit übergeben

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Cornflake
myCSharp.de-Mitglied

avatar-1299.gif


Dabei seit: 04.05.2007
Beiträge: 138
Entwicklungsumgebung: VB6, VS2005, VS2008
Herkunft: Bayern


Cornflake ist offline

Blazor: buttonclick soll html select value mit übergeben

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Leute

Ich habe folgenden html code in Blazor:

Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
<select name="Konfigliste">
        @foreach (var konfig in konfigs)
        {
            <option value="@konfig.Name">@konfig.Name</option>
        }
    </select> 

<button class="btn btn-primary" @onclick="@(e=> setAusführen(e, Konfigliste.value))">Ausführen</button>

@code {
private void setAusführen(MouseEventArgs e, string Konfigname)
    {
     //...  
    }
}

Wenn der Button geklickt wird, soll im Code Block die setAusführen() Methode mit dem in der Dropdown Liste ausgewählten Wert aufgerufen werden.
Das funktioniert nicht da Konfigliste.value einen fehler auslöst

Code:
1:
error CS0103: Der Name "Konfigliste" ist im aktuellen Kontext nicht vorhanden.

Was muss ich hier ändern, damit das funktioniert?

Grüße
Cornflake
27.11.2019 18:09 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.938
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

 Blazor component: The name 'page' does not exist in the current context

..und Umlaute im Quellcode ist evtl. eine nicht ganz so gute Idee.
27.11.2019 18:32 Beiträge des Benutzers | zu Buddylist hinzufügen
pinki
myCSharp.de-Mitglied

avatar-4072.jpg


Dabei seit: 24.08.2008
Beiträge: 683
Herkunft: OWL


pinki ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Abt:
..und Umlaute im Quellcode ist evtl. eine nicht ganz so gute Idee.

Da sind andere Sprachen schon  viel weiter. großes Grinsen
28.11.2019 08:26 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Cornflake
myCSharp.de-Mitglied

avatar-1299.gif


Dabei seit: 04.05.2007
Beiträge: 138
Entwicklungsumgebung: VB6, VS2005, VS2008
Herkunft: Bayern

Themenstarter Thema begonnen von Cornflake

Cornflake ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Danke Abt für deine Hinweise.
Die @page Zeile hatte ich vergessen mit in den Codeausschnitt zu übernehmen und den Methdenname habe ich angepasst. Leider ist die Fehlermeldung noch gleich geblieben. Ich hatte in dem offiziellen Blazorbeispielprojekt zu der Counter.razor Seite eigene Klassen und diese Seite hinzugefügt. In der Klasse "Konfig" gibt es die Eigenschaft "Name"

Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
@page "/konfigurationen"

<select name="Konfigliste">
        @foreach (var konfig in konfigs)
        {
            <option value="@konfig.Name">@konfig.Name</option>
        }
    </select> 

<button class="btn btn-primary" @onclick="@(e=> runKonfig(e, Konfigliste.value))">Ausführen</button>

@code {
private void runKonfig(MouseEventArgs e, string Konfigname)
    {
     //...  
    }
}

Wenn der Button geklickt wird, soll im Code Block die runKonfig() Methode mit dem in der Dropdown Liste ausgewählten Wert aufgerufen werden.
Das funktioniert nicht da Konfigliste.value einen Fehler auslöst.

Code:
1:
error CS0103: Der Name "Konfigliste" ist im aktuellen Kontext nicht vorhanden.

@pinki: Swift ist ja richtig Sprachflexibel :)
Grüße
Cornflake
28.11.2019 10:32 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.398
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich kenne mich mit Blazor nicht besonders gut aus, aber ich finde es merkwürdig, daß du direkt auf das Steuerelement zugreifen willst. Sollte man da nicht DataBinding verwenden, und eine Eigenschaft an den Wert der Liste binden, und dann auf diese Eigenschaft zugreifen?  Learn Blazor - Data Binding
28.11.2019 11:23 Beiträge des Benutzers | zu Buddylist hinzufügen
Cornflake
myCSharp.de-Mitglied

avatar-1299.gif


Dabei seit: 04.05.2007
Beiträge: 138
Entwicklungsumgebung: VB6, VS2005, VS2008
Herkunft: Bayern

Themenstarter Thema begonnen von Cornflake

Cornflake ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Habs hinbekommen :)
@MrSparkle Danke für den Link. Bin in diesem Angularbereich noch Anfänger. Bin eher in der Windows-Forms Welt unterwegs.

Hier die Lösung:
Zum Stichwort Two-Way Data Binding.
Im Codeblock wird eine Variable benötigt, die den aus der html Dropdown Liste ausgewählten Wert aufnehmen kann. Diese Variable wird mit @bind an das Control gebunden. Danach kann diese Variable auch im onclick angegeben werden.

Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
@page "/konfigurationen"

<select name="Konfigliste"  @bind="selectedKonfig" >
        @foreach (var konfig in konfigs)
        {
            <option value="@konfig.Name">@konfig.Name</option>
        }
    </select> 

<button class="btn btn-primary" @onclick="@(e=> runKonfig(e, selectedKonfig))">Ausführen</button>

@code 
{
private string selectedKonfig = "";    //Neu !!!

private void runKonfig(MouseEventArgs e, string Konfigname)
    {
     //...  
    }
}
28.11.2019 15:17 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 7 Monate.
Der letzte Beitrag ist älter als 7 Monate.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 04.07.2020 20:33