Sitecore 8 Speak UI - 从HTMLTemplate链接

时间:2015-11-16 10:59:46

标签: javascript sitecore sitecore8 sitecore-speak-ui

我正在使用ListControl,其中一个列有Delete链接,我使用HTMLTemplate进行格式化,如下所示:

<a href="javascript: app.showConfirmation()" >Delete</a>

我的Javascript看起来如下:

define(["sitecore", function (Sitecore) {
  var DestinationRules = Sitecore.Definitions.App.extend({
      initialized: function () {
          this.processDestinationRules();
      },
      showConfirmation: function () {
          alert('here');

      },

  });

  return DestinationRules;
});

出于某种原因,我无法调用showConfirmation()。它说是未定义的。我甚至尝试过Sitecore.Speak.app.showconfirmation()但没有工作。

我尽力在线搜索,但无法通过嵌入在HTMLTemplate中的控件调用函数找到很多帮助。

我的下一步是拨打DialogWindow。

请你帮我解决上面的语法。提前谢谢。

2 个答案:

答案 0 :(得分:0)

以不同的方式修复它。

我想在Listcontrol的每一行显示内联删除按钮。无法找到调用

的方法
javascript: app.showConfirmation()

我改变了删除记录的方式:

  • 在ListControl外面有一个删除按钮。
  • 根据绑定ListControl.HasSelectedItem启用/禁用“删除”按钮。
  • 点击“删除”按钮,调用showConfirmation()

截至目前,似乎是一种更好的方式。 Sitecore本身使用类似的方法来“开始”用户。可以在这里找到:

/sitecore/client/Applications/LicenseOptions/KickUser

希望有所帮助。感谢。

答案 1 :(得分:0)

最后,设法做到了这一点。总是知道它可以这样做,但不喜欢它的完成方式。

List控件中的Delete链接将打开一个确认对话窗口。如果用户选择“是”,则会调用app.onDeleteYes()

专栏的HtmlMarkup:

<a href="javascript:destinationRulePage.showDeleteDialog({{itemId}});">Delete</a>

添加了一个名为btnDelete的按钮,visibility设置为false

在App:

范围之外添加了以下功能
var destinationRulePage = (function () {
    var self = this;
    self.showDeleteDialog = function (id) {
        $("button[data-sc-id='btnYes']").attr("data-sc-click",
            "javascript:app.onDeleteYes(" + id + ");");
        $("button[data-sc-id='btnDelete']").click();
    }
    return self;
}())

这对我有用。感谢。