【问题标题】:Sitecore SPEAK - set searchdatasource root programmaticallySitecore SPEAK - 以编程方式设置 searchdatasource root
【发布时间】:2014-11-26 17:11:57
【问题描述】:

我最近一直在玩 SPEAK 对话框。到目前为止,我喜欢它,但偶然发现了一个问题。我在 url 参数中传递了一个 itemID,我想在列表控件中显示该项目的子项。

我的方法是创建一个 SearchDataSource 并通过 javascript 设置字段“rootItemId”。这似乎不起作用。有没有办法在 PageCode 中访问 SearchDataSource 的 rootItemId?

【问题讨论】:

    标签: javascript sitecore sitecore-speak-ui


    【解决方案1】:

    我最近使用的另一种方法是在这里使用 Anders Laub 的 JSON 数据源控件。 http://laubplusco.net/creating-simple-sitecore-speak-json-datasource/.

    然后,您可以从 JavaScript PageCode 执行 Ajax 调用并附加 JSON 结果项以填充您的 listcontrol,其中 listcontrols 绑定到 JSON 数据源 Json 属性。

    $.ajax({
                    url: "/api/sitecore/RolePermissions/GetAllRoles",
                    type: "POST",
                    context: this,
                    success: function (data) {
                        var json = jQuery.parseJSON(data);
    
                        for (var i = 0; i < json.length; i++) {
                            var obj = json[i];
                            this.JsonDS.add(obj);
                        }
                    }
                });
    

    【讨论】:

      【解决方案2】:

      我设法通过查询做到了这一点。在页面代码中:

      public class SelectTitle : PageCodeBase
          {
              //Fetches DataSource as rendering
              public Rendering DataSource { get; set; }
      
              public override void Initialize()
              {
                  var articleid = WebUtil.GetQueryString("article");
      
                  if (!String.IsNullOrEmpty(articleid))
                  {
                      //Set the query.
                      this.DataSource.Parameters["query"] =
                          String.Format("fast:/some/path/*[@@id = '{0}']/Elements/*[@@templateid = '{1}']", articleid, '{guid}');
                  }
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-21
        相关资源
        最近更新 更多