在 Sitecore 中如何在不知道ID的情况下从ASCX或ASPX后面的代码中访问所有静态绑定的子布局?
答案 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
这就是你想要的吗?