我注意到,当从框架API中提取内容时,默认页面大小为50.我尝试调整“ek_PageSize”AppSetting,但这似乎不会影响API。
基本上在我的所有代码中,我需要创建一个新的PaginInfo对象来更新返回的项目数。
var criteria = new ContentTaxonomyCriteria(ContentProperty.Id, EkEnumeration.OrderByDirection.Descending);
criteria.PagingInfo = new PagingInfo(100);
有没有人知道是否有办法更改默认值(对于整个网站)而无需在每次调用的条件上修改PagingInfo对象?
答案 0 :(得分:0)
web <.config中的页面大小应用程序设置我相信也控制此默认页面大小。但要注意,因为这也会改变工作区内的页面大小。
因此,如果您将其设置为100,那么您将在每页上看到100个用户,内容项,别名等,而不是默认的50个。
答案 1 :(得分:0)
您可以创建一个用于创建条件对象的工厂方法。然后,您将调用此工厂方法,而不是实例化条件对象。从这里,您可以定义代码所特有的AppSetting。 ContentManager
使用了几种类型的标准对象,因此您甚至可以使工厂方法通用。
private T GetContentCriteria<T>() where T : ContentCriteria, new()
{
// Sorting by Id descending will ensure newer content blocks are favored over older content.
var criteria = new T
{
OrderByField = ContentProperty.Id,
OrderByDirection = EkEnumeration.OrderByDirection.Descending
};
int maxRecords;
int.TryParse(ConfigurationManager.AppSettings["CmsContentService_PageSize"], out maxRecords);
// Only set the PagingInfo if a valid value exists in AppSettings.
// The Framework API's default page size of 50 will be used otherwise.
if (maxRecords > 0)
{
criteria.PagingInfo = new PagingInfo(maxRecords);
}
return criteria;
}