C# 是否有方法手动设置ContentView模板化服务器控件上的内容项?
我看到的新ContentView模板化服务器控件的示例都在前端使用ContentModelSource服务器控件。如果我已经创建了一个方法,该方法使用FrameworkAPI,在criteria对象中设置各种奇怪的过滤器,并返回一个C# 是否有方法手动设置ContentView模板化服务器控件上的内容项?,c#,ektron,C#,Ektron,我看到的新ContentView模板化服务器控件的示例都在前端使用ContentModelSource服务器控件。如果我已经创建了一个方法,该方法使用FrameworkAPI,在criteria对象中设置各种奇怪的过滤器,并返回一个列表,该怎么办。是否有一种方法可以将该内容数据列表传递到ContentView服务器控件中,并完全跳过页面上任何类型的ContentModelSource控件?使用ContentView时必须使用ContentModelSource 但是,您可以使用现有的框架API命
列表
,该怎么办。是否有一种方法可以将该内容数据列表传递到ContentView服务器控件中,并完全跳过页面上任何类型的ContentModelSource控件?使用ContentView时必须使用ContentModelSource
但是,您可以使用现有的框架API命令获取所需的内容,然后用C#代码将内容ID传递给ContentModelSource控件:
这将使用所有内容ID填充ContentModelSource
或者,您可以使用常规的.Net控件(如中继器)来写出内容项结果。我对这个问题做了大量深入研究,发现了以下几点:
- 确实,使用ContentView服务器控件需要ContentModelSource。如果您尝试不使用.NET异常,将得到一个丑陋的.NET异常
- 您不需要实际从该ContentModelSource获取数据
- 可以使用ContentView控件上的
属性设置数据。将其设置为页面上返回SelectMethod
或ContentData
的公共方法的名称List
- 或者,您可以等待页面加载事件,然后设置
属性。如果您试图在Page_Init期间设置.NET异常(我认为是空引用),则会得到一个.NET异常Model.ContentList
protected void Page_Load(object sender, EventArgs e)
{
var cm = new ContentManager();
var criteria = new ContentCriteria();
criteria.AddFilter(ContentProperty.Type, CriteriaFilterOperator.EqualTo, EkEnumeration.CMSContentType.Content);
cvPrimary.Model.ContentList = cm.GetList(criteria);
}
C#:
protected void Page_Load(object sender, EventArgs e)
{
var cm = new ContentManager();
var criteria = new ContentCriteria();
criteria.AddFilter(ContentProperty.Type, CriteriaFilterOperator.EqualTo, EkEnumeration.CMSContentType.Content);
cvPrimary.Model.ContentList = cm.GetList(criteria);
}