模板中的 Sitecore 数据源查询

Sitecore DataSource Query in Template

如何在模板的DataSource中写查询生成item的路径?

如果我在 DataSource 字段中编写查询并且页面使用模板,则数据源值将作为动态数据源的项目路径,如屏幕截图。

如果您正在寻找 Sitecore 自动生成子布局的数据源到它所在的项目,类似于具有源的模板字段 属性,目前没有任何现成的方法可以实现这一点。

如果您希望在子布局的数据源中输入查询,您将需要使用子布局项上的“启用数据源查询”字段。通过数据源传递查询:

然后检索查询并执行;

protected void Page_Load(object sender, EventArgs e)
{
    //Handle a single GUID
    var searches = ((Sublayout)this.Parent).DataSource;
    if (searches.IsGuid())
    {
        var itemDummyList = new List<Item>();
        itemDummyList.Add(Sitecore.Context.Database.GetItem(searches));
        this.SampleListView.DataSource = itemDummyList;
        this.SampleListView.DataBind();
        return;
    }

    //Handle a search query
    using (var context = ContentSearchManager.CreateSearchContext((SitecoreIndexableItem)Sitecore.Context.Item))
    {
        var timer = new Stopwatch();
        timer.Start();

        //This gives us our IQueryable
        var query = LinqHelper.CreateQuery(context, UIFilterHelpers.ParseDatasourceString(searches))                                                  
                                          .Select(toItem => toItem.GetItem()).Take(10);

        this.SampleListView.DataSource = query;
        this.SampleListView.DataBind();

        timer.Stop();

        //Display the query time only in Debug Mode
        if (Sitecore.Context.PageMode.IsDebugging)
        {
            this.RunTime.Text = " Debug Information: " + timer.ElapsedMilliseconds + " ms to render";
        }
    }
}

参考约翰·韦斯特; Sitecore 7 Datasource Explained

上的博客