0

如何在 mudblazor 中搜索 mudautocomplete 组件时显示多个列。例子附上截图

我们需要做任何定制吗?我是mudblazor的新手。

任何想法或代码片段表示赞赏。

4

1 回答 1

0

我为您创建了一个包含 MudBlazor 组件的自定义解决方案,您可以在其上进行扩展。要玩它,请查看这个游乐场片段:https ://try.mudblazor.com/snippet/GaQbvwPzyfOfrMyA

自定义自动完成

这是代码:

<div style="max-width:600px">
<MudTextField @bind-Value="SearchText" Placeholder="Type to search" Immediate="true" @onclick="@(()=>_isOpen=true)" @onkeydown="OnKeyDown"/>
<MudPopover Open="@_isOpen" MaxHeight="300" AnchorOrigin="@Origin.BottomCenter" 
    TransformOrigin="@Origin.TopCenter" RelativeWidth="true">
    <MudSimpleTable Style="overflow-x: auto;" Dense="true">
    <thead>
        <tr>
            @foreach (var h in headings)
            {
                <th>@h</th>
            }
        </tr>
    </thead>
    <tbody>
        @foreach (var row in rows.Where(x=>x.Contains(_searchText??"")))
        {
            <tr>
                @foreach (var x in row.Split())
                {
                    <td>@x</td>
                }
            </tr>
        }
    </tbody>
    </MudSimpleTable>
</MudPopover>    
</div>

@code {
    private bool _isOpen;
    private string _searchText;
    public string SearchText {
        get=>_searchText;
        set {
            if (_searchText==value)
                return;
            _searchText=value;
            _isOpen=true;   
            StateHasChanged();
        }
    }

    string[] headings = { "ID", "Name", "Email", "Gender", "IP Address" };
    string[] rows = {
        @"1 Krishna kpartner0@usatoday.com Male 28.25.250.202",
        @"2 Webb wstitle1@ning.com Male 237.168.134.114",
        @"3 Nathanil nneal2@cyberchimps.com Male 92.6.0.175",
        @"4 Adara alockwood3@patch.com Female 182.174.217.152",
        @"5 Cecilius cchaplin4@shinystat.com Male 195.124.144.18",
        @"6 Cicely cemerine9@soup.io Female 138.94.191.43",
    };

    private void OnKeyDown(KeyboardEventArgs args) {
        if (args.Key=="Enter")
            _isOpen=false;
    }
}

此代码段显示了如何创建自己的过滤下拉列表。如果您使用 MudTable 而不是 SimpleTable,您可以使用行单击事件来获取选定的行,然后您实际上应该拥有完全正常工作的自定义自动完成功能。

于 2021-12-15T12:35:03.457 回答