是否有可公开访问的事件来标记ModalDialog关闭?

时间:2013-05-02 15:23:17

标签: c# xaml sitecore modal-dialog

我最近在Sitecore中制作了一个自定义功能区。其中的两个按钮触发一个使用SheerResponse.ShowModalDialog激活Xaml应用程序的命令。这些应用程序会影响功能区上另一个组件正在读取的数据库的状态。

我需要能够从Xaml应用程序触发自定义事件或函数来制作另一个功能区组件,或者我需要能够使功能区上的组件意识到它需要重新呈现时ModalDialog结束了。我没有看到任何可以做到这一点的明显事件,而且我在使用DotPeek查看原始代码时已经尽可能地去了,而且我还没有看到任何看起来很有希望的东西。

1 个答案:

答案 0 :(得分:0)

显然,答案是在整个时间,我错过了它。

SheerResponse有一个五参数版本的ShowModalDialog,它接受​​一个布尔值作为最终参数。这意味着我可以将其与ClientPage.Start

结合使用
    Context.ClientPage.Start(this, "Run", kv);
}

private void Run(ClientPipelineArgs args)
{
    var id = args.Parameters["id"];
    if(!args.IsPostBack)
    {
        string controlUrl = string.Format("{0}&id={1}", UIUtil.GetUri("control:AltDelete"), id);
        SheerResponse.ShowModalDialog(controlUrl,"","","",true);
        args.WaitForPostBack();
    }
    else
    {
        Logger.LogDebug("post back");
    }
    Logger.LogDebug("out of if");
}