Blazor 二级弹窗实现

15 篇文章 1 订阅

这样写二级弹窗Blazor竟然不支持,页面不弹窗也不报错

<Modal @ref="Modal" IsKeyboard="true">
    <ModalDialog Title="默认弹窗">
        <BodyTemplate>
            <div>我是弹窗内正文</div>

            <Button Color="Color.Primary" Icon="fa-solid fa-font-awesome" Text="弹窗" OnClick="() => Modal2.Toggle()" />


            <Modal @ref="Modal2" IsKeyboard="true">
                <ModalDialog Title="默认弹窗">
                    <BodyTemplate>
                        <div>我是弹窗内正文2</div>
                    </BodyTemplate>
                </ModalDialog>
            </Modal>

        </BodyTemplate>
    </ModalDialog>
</Modal>

最后改成这样实现了二级弹窗,这种思路如果出现三级弹窗就麻烦了,官方也没找到好的例子。

实现思路:

1、把B、C弹窗内容都放入到A页面

2、因为要实现A弹出B后,B里面再弹出C

3、所以把C的整个弹窗对象(即REF标记的对象)当做一个参数传入到B里面,如下面代码的Model2

4、这样就可以在B页面调用C页面的对象了,实现B页面打开C的弹窗

5、如果C要把返回值传给B,则可以继续在下面的A页面,通过C的操作事件去调用B页面的方法或属性,因为BC都在A页面,所以C可以直接操作B的内容

<Modal @ref="Modal" IsKeyboard="true">
    <ModalDialog Title="默认弹窗">
        <BodyTemplate>
            <div>我是弹窗内正文</div>

            @*            <Button Color="Color.Primary" Icon="fa-solid fa-font-awesome" Text="弹窗" OnClick="() => Modal2.Toggle()" />
            *@

            <UploadFile2 Modal2="Modal2" />

        </BodyTemplate>
    </ModalDialog>
</Modal>


<Modal @ref="Modal2" IsKeyboard="true">
    <ModalDialog Title="默认弹窗">
        <BodyTemplate>
            <div>我是弹窗内正文2</div>
        </BodyTemplate>
    </ModalDialog>
</Modal>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值