从Sitecore中的代码访问静态Sublayouts的集合

时间:2012-01-27 22:16:50

标签: sitecore

Sitecore 中如何在不知道ID的情况下从ASCX或ASPX后面的代码中访问所有静态绑定的子布局?

2 个答案:

答案 0 :(得分:1)

foreach(var c in this.Controls){
  if(c is Sublayout) {
    var sl = (Sublayout)c;
  }
}

或者使用LINQ:

var sublayouts = this.Controls.Where(c => (c is Sublayout)).Select(c = > (Sublayout)c);

<强>更新

我最近通过获取HtmlHead控件来尝试这样做,所以I wrote a blog post on how to do it。我刚刚意识到你可以为子布局做类似的事情。

这是一种实用工具方法,可以按类型获取页面上的控件:

WebUtil.FindControlsOfType(typeof(Sublayout), Sitecore.Context.Page.Page)

答案 1 :(得分:1)

我不确定我是否误解了你的问题。但是你不是有兴趣获得某些项目的子布局和XSLT吗?

在这种情况下,您必须访问我在此博文中提到的Items LayoutDefinition:http://sitecorejm.blogspot.com/2007/09/getting-items-rendering.html

这就是你想要的吗?