Comment obtenir la valeur de l'option select et en même temps utiliser @onchange pour exécuter une fonction. (blazer)

Hossein Hosseini
<select @bind="Project.Supplier" @onchange="LoadProjectTypes">
   <option value="0">Select Supplier</option>

   @foreach (var supplier in ProjectSuppliers)
    {
        <option>@supplier.SupplierName</option>
    }
</select>

@code{
private ProjectModel Project;
private List<ProjectSuppliersModel> ProjectSuppliers;

public void CreateProject()
{
    //a function to insert the current project in the database
}

protected override void OnInitialized()
{
    ProjectSuppliers = _db.GetProjectSuppliers();
}

Je veux obtenir le Project.Supplier sélectionné à partir de select-option, puis l'envoyer à la base de données. en même temps, je veux utiliser la fonction LoadProjectTypes. mais il y a une erreur dans l'élément select comme celle-ci : "L'attribut 'onchange' est utilisé deux fois ou plus pour cet élément". Comment puis-je le résoudre. Est-ce que j'ai raté quelque chose ? pour être plus clair : la fonction LoadProjectTypes affecte un autre élément de sélection pour afficher les types de projet qui sont liés uniquement au fournisseur de projet sélectionné en tant qu'options

Bennyboy1973

Sous le capot, @bind utilise @onchange pour définir votre variable, vous ne pouvez donc pas utiliser les deux.

Je pense que vous n'avez généralement pas besoin d'une liaison bidirectionnelle pour les listes déroulantes, je recommande donc l'exemple "Unbound" dans ce qui suit. Mais si vous voulez VRAIMENT effectuer une liaison bidirectionnelle, vous pouvez alors attraper le changement de valeur dans une personnalisation get; set;pour la variable au lieu d'essayer d'attraper l'événement réel.

@page "/onchange"

<select @onchange="HandleOnChangeUnbound">
    <option disabled selected>Select an option</option>
    <option>Option 1</option>
    <option>Option 2</option>
    <option>Option 3</option>
</select>
<br />
@if (UnboundSelected is not null)
{
    <div>@UnboundSelected</div>
}
<select @bind="BoundSelected">
    <option disabled selected>Select an option</option>
    <option>Option A</option>
    <option>Option B</option>
    <option>Option C</option>
</select>
@if (DisplayBound is not null)
{
    <div>@DisplayBound</div>
}



@code {
    string UnboundSelected { get; set; }
    string DisplayBound { get; set; }
    private string _boundSelected;
    public string BoundSelected
    {
        get
        {
            return _boundSelected;
        }
        set
        {
            _boundSelected = value;
            HandleOnChangeBound(value);
        }
    }
    void HandleOnChangeUnbound(ChangeEventArgs args)
    {
        UnboundSelected = args.Value.ToString();
        // Do DB stuff.
    }
    void HandleOnChangeBound(string value)
    {
        DisplayBound = value;
        // Do DB stuff
    }
}

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    comment afficher un bouton au-dessus d'un autre élément ?

  2. 2

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  3. 3

    Je continue à obtenir l'objet 'WSGIRequest' n'a pas d'attribut 'Get' sur django

  4. 4

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  5. 5

    Conversion double en BigDecimal en Java

  6. 6

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  7. 7

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  8. 8

    Passer la taille d'un tableau 2D à une fonction ?

  9. 9

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  10. 10

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  11. 11

    CSS: before ne fonctionne pas sur certains éléments,: after fonctionne très bien

  12. 12

    Comment créer un bot à compte à rebours dans Discord en utilisant Python

  13. 13

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  14. 14

    Exporter la table de l'arborescence vers CSV avec mise en forme

  15. 15

    Comment activer le message Pylint "too-many-locals" dans VS Code?

  16. 16

    Créer un système Buzzer à l'aide de python

  17. 17

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  18. 18

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  19. 19

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  20. 20

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  21. 21

    Microsoft.WebApplication.targets

chaudétiquette

Archive