- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Ektron CMS 9.0 版
我有分配给分类法的智能表单内容,例如我可能有五个智能表单内容项(全部相同)类型分配给一个分类法,另外三个分配给不同的分类法:
我需要从分类法中获取智能表单类型的所有内容:
public IEnumerable<T> GetListOfSmartFormFromTaxonomy<T>(long taxonomyId, bool isRecursive) where T : class
{
// TODO
}
根据下面的链接,我的工作是这样的:
public IEnumerable<TaxonomyItemData> GetListOfSmartFormFromTaxonomy(long taxonomyId)
{
TaxonomyItemCriteria criteria = new TaxonomyItemCriteria();
criteria.AddFilter(TaxonomyItemProperty.TaxonomyId, CriteriaFilterOperator.EqualTo, taxonomyId);
TaxonomyItemManager taxonomyItemManager = new TaxonomyItemManager();
List<TaxonomyItemData> taxonomyItemList = taxonomyItemManager.GetList(criteria);
return taxonomyItemList;
}
但这只是获取项目的标题和 ID,而不是智能表单数据本身。
作为 Ektron 的新手,我不知道如何只使用一次调用来获取一种智能表单类型的所有项目(而不是循环遍历每个项目并通过 ID 获取它,这效率不高)
我错过了什么?我今天正在积极开展这项工作,并将在此处发布我的发现。
到目前为止使用的引用资料:
在下面发布了我刚刚得到它的工作解决方案作为引用,并授予最接近的答案作为接受。谢谢大家的帮助。请提出任何改进;)
最佳答案
我建议将 ContentTaxonomyCriteria 与 ContentManager 结合使用。
long smartFormId = 42;
long taxonomyId = 127;
bool isRecursive = true;
var cm = new ContentManager();
var taxonomyCriteria = new ContentTaxonomyCriteria();
taxonomyCriteria.AddFilter(ContentProperty.XmlConfigurationId, CriteriaFilterOperator.EqualTo, smartFormId);
taxonomyCriteria.AddFilter(taxonomyId, isRecursive);
var content = cm.GetList(taxonomyCriteria);
ContentData
对象有一个名为 XmlConfiguration
的属性。当内容基于 smartform 时,此属性将为非 null 并具有正(非零)Id:例如 content[0].XmlConfiguration.Id
。
我经常在我的代码中添加一个扩展方法,它会告诉我给定的 ContentData 是否基于智能表单:
public static class ContentDataExtensions
{
public static bool IsSmartFormContent(this ContentData content)
{
return content != null && content.XmlConfiguration != null && content.XmlConfiguration.Id > 0;
}
}
这样我就可以获取内容(或内容列表)并在代码中快速检查它是否基于智能表单:
foreach (var contentData in contentList)
{
if (contentData.IsSmartFormContent())
{
// Do smart-form stuff here...
}
}
当然,如果您的内容来自框架 api,并且您使用了基于特定 XmlConfigurationId 进行选择的标准对象,那么理论上您不必使用它,但它仍然经常派上用场.
关于ektron - 从分类法中获取 Ektron 9 的所有 SmartForm 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22608874/
我在 Workarea\Widget 中创建了一个 Ektron 智能桌面小部件。但我无法更改该小部件的标题。如何为 Ektron 智能桌面小部件指定标题。 最佳答案 确保您的自定义智能桌面小部件继承
我正在尝试使用 Dotnet 在 Ektron 中做一个新项目。我看到有相当少 在 stackoverflow 中发布的问题和对它们的回答。什么是最好的网站 在使用 Ektron 进行开发时消除我的疑
我正在 Ektron 中使用 WCF 服务(rrot/工作区/服务)。当我尝试使用以下代码在客户端中使用 ContentService.svc 服务时, ContentManagerClient
我在 Ektron 8.6 中工作。 有谁知道 ektron 是如何管理 API 级缓存的?是否有任何配置设置来管理 API 级缓存?(web.config 或任何其他配置文件)。是否默认启用 API
我在 Ektron 8.6 工作。 我的模板页面中有一个 FormBlock 服务器控件,它有一个来自工作区的有效 HTML 表单的 DefualutFormID。工作区中的表单几乎没有表单字段及其相
我在 Ektron 8.6 工作 我正在尝试在我的 ektron 网站的 EkException 中使用辅助函数。 我尝试使用以下代码: Exception ex=new Exception("Te
我正在开发 Ektron 8.6。 如何通过使用 API 传递内容 ID 来检索以前版本的内容?Previous version 意思是编辑前的内容数据(一个内容可能有多次编辑)。是否可以通过API检
我正在使用 Ektron CMS 9.0 版 我有分配给分类法的智能表单内容,例如我可能有五个智能表单内容项(全部相同)类型分配给一个分类法,另外三个分配给不同的分类法: 我需要从分类法中获取智能表单
在 Ektron 中,如何处理错误或异常。有什么方法可以处理这个问题? Ektron DB 中的任何表都存储错误或异常。我们如何使用 Ektron.Cms.EkException 类处理事件? 最佳答
我是 Ektron 的新手,使用其 8.6.0 版本,我想创建一个小部件,以 Xliff/XML 格式导入所选文件夹/表单的内容(与 EKtron 提供的工作方式相同,但需要使用代码在自定义小部件中实
我需要在正文标记的页脚附近放置一些用于 Google 再营销的 javascript 跟踪代码,但我是 Ektron 的新手,不确定要访问哪个文件以将其放入。 最佳答案 将您拥有的任何 Google
我已经创建了 smartform 并使用 bat 文件生成了相关类(使用 xsd 生成 c# 类)。然后我将创建的 smartform 分配给一个特定的文件夹,并使用 CMS 工作区创建了示例 sma
我使用的是 Ektron CMS 8.5 SP2 版。 我在分类法中有一些项目。有些是实际页面,有些是库项目(Word 文件和 PDF 等文档)。 假设我的分类中有 3 个页面和 2 个图书馆项目,总
我在我的 Ektron 网站上使用了一些 CSS 媒体查询。它们在 iPhone 上运行正常,但当我尝试在我的生产站点上模拟较小的屏幕时,断点不会启动。 这是奇怪的部分(至少对我而言)。当我在我的开发
我有一个页面提示用户输入密码以显示内容。但是,当 Ektron 用户编辑页面内容时,我希望它只显示内容而不要求输入密码。密码功能全部在代码隐藏中设置;页面元数据中的密码告诉代码隐藏显示内容的用户控件
我们最近从 Ektron 8.6 升级到 9.0(Ektron CMS400.NET,版本:9.00 SP2(Build 9.0.0.249))。 我有一些代码(如下),用于显示分类中项目的链接。在
我们的主驱动器上的磁盘空间不足,我们希望将我们的 Assets 文件夹移动到同一系统上的新驱动器。据我所知,它可能就像移动文件并使用新位置编辑 AssetManagement.config 文件一样简
我使用的是经过高度修补的 8.0.1 SP1 版本。 我有很多网站要从一个托管服务器和数据库迁移到另一个。我曾尝试使用 eSync,但我们的版本有很多补丁,我花了好几天时间尝试制定一个基本的 eSyn
我使用的是经过高度修补的 8.0.1 SP1 版本。 我有很多网站要从一个托管服务器和数据库迁移到另一个。我曾尝试使用 eSync,但我们的版本有很多补丁,我花了好几天时间尝试制定一个基本的 eSyn
我有一个小部件,其子文件夹包含一些 css 和 JS。我想通过小部件而不是外部注册这些文件。 首先,我把它们放在哪里。 page_load、预渲染、初始化??? 这是我的注册脚本函数,我尝试从页面加载
我是一名优秀的程序员,十分优秀!