亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當我在 blazor 中選擇一個選項時如何執行代碼

當我在 blazor 中選擇一個選項時如何執行代碼

慕勒3428872 2023-10-10 10:13:56
當我選擇一個選項時,我試圖執行一個方法,但我不知道如何執行此操作。這就是我現在正在嘗試的<InputSelect/>對象<EditForm/>:<tr>   <th>      <label for="layouts">Layout *</label><br />      <InputSelect @bind-Value="label.Layout">            <option value="">Selecteer</option>            <option value="@availableLayouts.GetValue(0)" @onselect="OnSelectFinalCheck">Eindcontrole</option>            <option value="@availableLayouts.GetValue(1)" @onselect="OnSelectStock">Voorraad</option>            <option value="@availableLayouts.GetValue(2)">Uitbesteed werk</option>            <option value="@availableLayouts.GetValue(3)">Geleidebon label</option>        </InputSelect>      <br />   </th><th>所以這是我的選擇,當我單擊“voorraad”時,我想執行一個方法。
查看完整描述

1 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

注意:在元素中選擇某些文本后,將觸發 onselect 事件。它與選擇元素或選項選擇無關...據我記得,InputSelect 有一些問題,但 Blazor 團隊可能已經解決了這些問題。


以下代碼片段描述了如何在 Blazor 中使用 select 元素,以及如何實現雙向數據綁定;即從變量到元素,以及從元素到變量。您可以通過多種方式做到這一點:根據大師史蒂夫·安德森的說法,我的代碼采用了最有效的方式來實現這一目標。


下面的代碼片段使用雙向數據綁定將 SelectedAuthorID 變量綁定到 select 元素。


 <select @bind="@SelectedAuthorID">

    <option value=@(0)></option>

    @foreach (var author in authors)

    {

        <option value="@author.ID">@author.Name</option>

    }

</select>

注意:SelectedAuthorID 是一個定義支持私有變量的屬性:


    int _selectedAuthorID;

    private int SelectedAuthorID

    {

        get => _selectedAuthorID;

        set

        {

            if (_selectedAuthorID != value)

            {

                _selectedAuthorID = value;

            }

        }

     }

嗯,這段代碼是非常不言自明的,但是如果您不完全理解我所做的事情,請隨時詢問。


上面 foreach 循環中的authors 對象是您可以按如下方式創建的作者列表:


 @code {

     List<Author> authors= Enumerable.Range(1, 10).Select(i => new Author { ID 

                            = i, Name = $"Author {i.ToString()}" }).ToList();


 public class Author

 {

    public int ID { get; set; }

    public string Name { get; set; }

 }  

}


現在,讓我們嘗試在 value="@availableLayouts.GetValue(1)"表達式之后對我的選項進行建模。該表達式被計算為字符串文字,對吧?當用戶選擇此選項時,將調用 OnSelectStock 來執行某些操作。


假設我們要調用 OnSelectStock 方法,并在選擇作者時將作者 id 傳遞給它,而他的 id 是偶數。因此我們可以這樣做:


    if (_selectedAuthorID != value)

        {

            _selectedAuthorID = value;

            if(value % 2 == 0)

            {

                OnSelectStock( value );

            }


        }

就是這個。


希望這可以幫助...


完整的工作代碼:


索引剃刀

@page "/"


<select @bind="@SelectedAuthorID">

    <option value=@(0)></option>

    @foreach (var author in authors)

    {

        <option value="@author.ID">@author.Name</option>

    }

</select>


<p>Selected Author ID: @authorID</p>


@code{


string authorID;


int _selectedAuthorID;

private int SelectedAuthorID

{

    get => _selectedAuthorID;

    set

    {

        if (_selectedAuthorID != value)

        {

            _selectedAuthorID = value;

      // Call OnSelectStock only if the author ID is an even number

            if (value % 2 == 0)

            {

                OnSelectStock(value);

            }

        }

    }

 }


 List<Author> authors = Enumerable.Range(1, 10).Select(i => new Author 

                { ID = i, Name = $"Author {i.ToString()}" }).ToList();


 private void OnSelectStock(int value)

 {

    authorID = value.ToString();

 }


 public class Author

 {

    public int ID { get; set; }

    public string Name { get; set; }

 }

}



查看完整回答
反對 回復 2023-10-10
  • 1 回答
  • 0 關注
  • 111 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號