c# - Blazor、MatBlazor - 如何捕捉 MatSelect 组件的值变化

标签 c# asp.net-core blazor matblazor

我在我的项目中使用了 MatBlazor 框架。 在 MatSelect 中,我想捕捉它的值 onchange 事件来做一些其他的工作。 我尝试了一些解决方案,但 onchange 事件尚未触发。

<MatSelect Label="Customer" Value="@customer" ValueChanged="OnChangeCustomer">
    <MatOptionString Value="-1">All</MatOptionString>
    @foreach (var item in customers)
    {
        <MatOption Value="@item.Id">@item.Name</MatOption>
    }                
</MatSelect>

下面是我的 onchange 事件处理程序。但是当在下拉列表中选择另一个值时它没有触发:

public void OnChangeCustomer(ChangeEventArgs args)
{
    if (args.Value.ToString() != "-1")
        isAccountDropDownListDisabled = false;            
}

谁能帮帮我? 谢谢

最佳答案

您可以引用以下示例来使用 MatSelect 控件:

    <MatSelect Outlined="true" Label="Category" ValueChanged="(string i) => OnChangeCategory(i)"> 
        <MatOptionString Value="-1">All</MatOptionString>
        @foreach (var cat in GetCategories())
        {
            <MatOptionString Value="@cat.Id.ToString()">@cat.Name</MatOptionString>
        }
    </MatSelect>
    <span>@selectedValue</span>

    @code
    {
        public string selectedValue;
        protected List<Customer> GetCategories()
        {
            //return new List<string>() { "AA", "BB" };
            return new List<Customer>() {
                    new Customer(){Id=1001, Name="Tom"},
                    new Customer(){Id=1002, Name="David"},
                    new Customer(){Id=1003, Name="Lucy"}
                };
        }

        protected void OnChangeCategory(string value)
        {
            //do something
            selectedValue = "Selected Value: " + value;
        } 
    }

截图如下:

enter image description here

更多详细信息,查看MatSelect文档。

关于c# - Blazor、MatBlazor - 如何捕捉 MatSelect 组件的值变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64802201/

相关文章:

c# - Web 服务器正在发送重复的电子邮件

asp.net-core - 在 Identityserver4 .NET Core 中启用多个 AzureAd

iis - 发布到 IIS。省略在服务器上安装 .NET Core Windows Server Hosting bundle

c# - 我的 IUserClaimsPrincipalFactory 实现导致 IdentityServer4 上出现 StackOverflowException

c# - Blazor 获取两个属性的验证消息

javascript - 事件目标在我的 Blazor 项目中不起作用

c# - IIS7重启问题

c# - 如何为线程池中的每个新线程初始化一个标有 ThreadStaticAttribute 的静态字段?

blazor - 在文件共享上部署 Blazor Web 应用程序

c# - 使用原始 SQL 预加载实体