【问题标题】:Mudblazor Dialog ReferenceMudblazor 对话框参考
【发布时间】:2021-10-16 13:44:37
【问题描述】:

我在我的 Blazor 应用程序中使用 Mudblazor。我在 ValidSubmit 处理程序内的组件中有以下代码:

public async Task HandleValidSubmit()
{
    DialogService.Show<SavingDialog>("Saving Data");
    await Http.PostAsJsonAsync("api/Client/AddClient", CModel);

    //close the dialog here...
    //DialogService.Close(<need reference here>);
}

DialogService 打开也是一个组件的 SavingDialog。 在 http 调用之后,我想关闭对话框。我怎么做?我可以在文档中看到 DialogService.Close(DialogReference dialog)。如何获得对我打开的对话框的引用以便关闭它?

谢谢。

【问题讨论】:

    标签: reference dialog blazor mudblazor


    【解决方案1】:

    Show 返回对打开对话框的引用!

    所以你需要做的就是:

    public async Task HandleValidSubmit()
    {
       var dialogRef = DialogService.Show<SavingDialog>("Saving Data");
       await Http.PostAsJsonAsync("api/Client/AddClient", CModel);
    
       //close the dialog here...
       dialogRef.Close();
    }
    

    【讨论】:

    • 在对话框组件中呢?我有一个典型的 GUI 设置,其中打开了对话框,并具有 [保存] 和 [关闭] 操作。这些功能是在内部处理的,在处理时,我需要从对话框内组件中触发对话框关闭。
    【解决方案2】:

    在你的对话框组件中,定义这个:

     [CascadingParameter] MudDialogInstance MudDialog { get; set; }
    

    然后,您可以调用 Close/Cancel 方法。

        private void Cancel()
        {
            MudDialog.Cancel();
        }
    
        private void Ok()
        {
            MudDialog.Close(DialogResult.Ok( <any result you need to pass back> ));
        }
    

    我在 MudBlazor 对话框“传递数据”示例中找到了这个(检查 .razor 代码)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      • 2022-09-25
      • 2021-10-22
      • 1970-01-01
      • 2021-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多