blazor树形菜单通过动态渲染后,进行图标的显示和隐藏操作。

最开始想复杂了想着通过获取HTML元素的ID进行图标的显隐操作,最后发现Blazor好像无法获取HTML元素,要么就是通过JS比较麻烦。最后问了下大佬,就用了一下三元运算符 就解决了。

应用场景
单击树形菜单的某个节点,使选中的节点显示后面的图标。未选中的节点不显示。如下图:
在这里插入图片描述
直接上代码:

  foreach (var item in TreeItems)
            {
                item.Template = (RenderTreeBuilder __builder) =>
                {

                <span>@item.Text</span>




                <Button class="styleicon" style="width:25px;height:25px; color:blue" OnClick="OnCreateIceBoxClick" Color="Color.None" Icon="@(IceRoomconID==item.Key.ToString()?"iconfont icon-bingxiang":"")">
                </Button>

                <Button class="styleicon" style="width:25px;height:25px; color:green" OnClick=" async ()=> { await OnEditClick(_Roomite); }" Color="Color.None" Icon="@(IceRoomconID==item.Key.ToString()?"iconfont icon-bianji1":"")">
                </Button>

                <PopConfirmButton class="styleicon" style="width:25px;height:25px;color:red" Placement="Placement.Top" Color="Color.None" ConfirmIcon="fa fa-exclamation-triangle text-danger" ConfirmButtonColor="Color.Danger" Title="删除房间" OnConfirm="DeleteRoom" Icon="@(IceRoomconID==item.Key.ToString()?"iconfont icon-shanchu":"")" Content="@($"您确定要删除{_IceBox.Text}吗?")" />





                };

                if (!item.HasChildNode)
                {
                    item.CssClass = "text-danger";
                }
            }

主要控制代码 就一句:通过三元运算符控制Icon的显隐@(IceRoomconID==item.Key.ToString()?"iconfont icon-bianji1":"")

当我们点击树形菜单的时候,获取当前节点ID,然后和已经赋值好的ID进行比较,如果相等,就赋值给它图标。

     IceRoomconID = item.Key.ToString();

这样就可以很好的控制显隐操作呢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值