Sitecore 体验编辑器按钮触发.aspx 弹出页面
Sitecore experience editor button triggering .aspx pop up page
是否可以使 sitecore 体验编辑器功能区按钮在弹出 window 中触发 .aspx
页面?在引入 speak-ui
之前,可以通过将命令分配给按钮的 click
字段来实现。
有很多教程介绍如何使用 XML 控件(例如 http://jockstothecore.com/sitecore-8-ribbon-button-transfiguration/),但我找不到任何有关触发 .aspx
页面的信息。
我的命令如下所示:
<command name="item:showDashboard" type="Sitecore.Starterkit.customcode.Reports, MyProject" />
在您发布的教程中,我将只修改代码片段以反映您需要执行的操作。 (考虑到你已经做了其他一切)。在 Spell Two
部分
在命令 class 中你应该做这样的事情(如果你需要等待回发):
public override void Execute(CommandContext context)
{
Assert.ArgumentNotNull((object) context, "context");
Context.ClientPage.Start((object) this, "Run", context.Parameters);
}
protected static void Run(ClientPipelineArgs args)
{
Assert.ArgumentNotNull((object) args, "args");
SheerResponse.ShowModalDialog(new UrlString("/YOURURL.aspx").ToString(), true);
args.WaitForPostBack();
}
如果你只是想展示一些东西:
public override void Execute(CommandContext context)
{
Assert.ArgumentNotNull((object)context, "context");
if (context.Items.Length != 1)
return;
Item obj = context.Items[0];
UrlString urlString = new UrlString("/YOURURL.aspx");
urlString["fo"] = obj.ID.ToString();
urlString["la"] = obj.Language.ToString();
urlString["vs"] = obj.Version.ToString();
string str = "location=0,menubar=0,status=0,toolbar=0,resizable=1,getBestDialogSize:true";
SheerResponse.Eval("scForm.showModalDialog('" + (object)urlString + "', 'SitecoreWebEditEditor', '" + str + "');");
}
对于javascript:
define(["sitecore"], function (Sitecore) {
Sitecore.Commands.ScoreLanguageTools = {
canExecute: function (context) {
return true; // we will get back to this one
},
execute: function (context) {
var id = context.currentContext.itemId;
var lang = context.currentContext.language;
var ver = context.currentContext.version;
var path = "/YOURURL.aspx?id=" + id + "&lang=" + lang + "&ver=" + ver;
var features = "dialogHeight: 600px;dialogWidth: 500px;";
Sitecore.ExperienceEditor.Dialogs.showModalDialog(
path, '', features, null,
function (result) {
if (result) {
window.top.location.reload();
}
}
);
}
};
});
是否可以使 sitecore 体验编辑器功能区按钮在弹出 window 中触发 .aspx
页面?在引入 speak-ui
之前,可以通过将命令分配给按钮的 click
字段来实现。
有很多教程介绍如何使用 XML 控件(例如 http://jockstothecore.com/sitecore-8-ribbon-button-transfiguration/),但我找不到任何有关触发 .aspx
页面的信息。
我的命令如下所示:
<command name="item:showDashboard" type="Sitecore.Starterkit.customcode.Reports, MyProject" />
在您发布的教程中,我将只修改代码片段以反映您需要执行的操作。 (考虑到你已经做了其他一切)。在 Spell Two
在命令 class 中你应该做这样的事情(如果你需要等待回发):
public override void Execute(CommandContext context)
{
Assert.ArgumentNotNull((object) context, "context");
Context.ClientPage.Start((object) this, "Run", context.Parameters);
}
protected static void Run(ClientPipelineArgs args)
{
Assert.ArgumentNotNull((object) args, "args");
SheerResponse.ShowModalDialog(new UrlString("/YOURURL.aspx").ToString(), true);
args.WaitForPostBack();
}
如果你只是想展示一些东西:
public override void Execute(CommandContext context)
{
Assert.ArgumentNotNull((object)context, "context");
if (context.Items.Length != 1)
return;
Item obj = context.Items[0];
UrlString urlString = new UrlString("/YOURURL.aspx");
urlString["fo"] = obj.ID.ToString();
urlString["la"] = obj.Language.ToString();
urlString["vs"] = obj.Version.ToString();
string str = "location=0,menubar=0,status=0,toolbar=0,resizable=1,getBestDialogSize:true";
SheerResponse.Eval("scForm.showModalDialog('" + (object)urlString + "', 'SitecoreWebEditEditor', '" + str + "');");
}
对于javascript:
define(["sitecore"], function (Sitecore) {
Sitecore.Commands.ScoreLanguageTools = {
canExecute: function (context) {
return true; // we will get back to this one
},
execute: function (context) {
var id = context.currentContext.itemId;
var lang = context.currentContext.language;
var ver = context.currentContext.version;
var path = "/YOURURL.aspx?id=" + id + "&lang=" + lang + "&ver=" + ver;
var features = "dialogHeight: 600px;dialogWidth: 500px;";
Sitecore.ExperienceEditor.Dialogs.showModalDialog(
path, '', features, null,
function (result) {
if (result) {
window.top.location.reload();
}
}
);
}
};
});