我最近在Sitecore中制作了一个自定义功能区。其中的两个按钮触发一个使用SheerResponse.ShowModalDialog
激活Xaml应用程序的命令。这些应用程序会影响功能区上另一个组件正在读取的数据库的状态。
我需要能够从Xaml应用程序触发自定义事件或函数来制作另一个功能区组件,或者我需要能够使功能区上的组件意识到它需要重新呈现时ModalDialog
结束了。我没有看到任何可以做到这一点的明显事件,而且我在使用DotPeek查看原始代码时已经尽可能地去了,而且我还没有看到任何看起来很有希望的东西。
答案 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");
}