core - 添加一些方法来指定 blazor 中的不确定复选框

标签 core blazor

添加一些方法来指定 blazor 中的不确定复选框。

我试过下面不行

<input type="checkbox" indeterminate="@checkValue" onclick="@checkedClick" />

任何人在 blazor 中指定不确定的复选框。

最佳答案

这似乎暂时没有计划。 (参见 https://github.com/dotnet/aspnetcore/issues/10378)

我找到的最小解决方案是...

组件代码

@inject IJSRuntime jsRuntime

<input @ref=inputElement type="checkbox" checked="@Checked" @onchange="OnChange" />

@code {
    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        if (Indeterminate.HasValue)
        {
            await jsRuntime.SetElementProperty(inputElement, "indeterminate", Indeterminate.Value);
        }
        await base.OnAfterRenderAsync(firstRender);
    }

    private ElementReference inputElement;

    [Parameter]
    public bool? Indeterminate { get; set; }

    [Parameter]
    public bool Checked { get; set; }

    [Parameter]
    public EventCallback<bool> CheckedChanged { get; set; }

    private async Task OnChange(ChangeEventArgs e)
    {
        Checked = (bool)e.Value;
        await CheckedChanged.InvokeAsync(Checked);
    }
}

互操作 C# 代码

public static async Task SetElementProperty(this IJSRuntime jsRuntime, ElementReference element, string property, object value)
{
    await jsRuntime.InvokeVoidAsync("window.jsinterop.setPropByElement", element, property, value);
}

互操作 Javascript 代码

window.jsinterop = {
    setPropByElement: function (element, property, value) {
        element[property] = value;
    }
}

关于core - 添加一些方法来指定 blazor 中的不确定复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56210072/

相关文章:

azure - 查找某个区域可用的核心总数

c# - Blazor (.net 7) 中的三种依赖注入(inject)语法有区别吗?

c# - 在获取父实体 EFCore 时加载子实体

blazor - 安全存储 Blazor Webassembly 应用程序的应用程序 secret

linux - 不同linux版本生成的核心转储有什么区别?

java - 删除 ArrayList 中的范围内内容

gdb 在 macOS 上不读取核心转储

ocaml - 如何使用 Janestreet Core 定义自定义异常打印机?

components - Blazor - 无法从 'method group' 转换为 'EventCallback'

c# - Blazor 父组件可以知道它里面有多少个子组件吗?