Kentico - 自定义页面类型页面的WHERE条件

时间:2016-09-06 18:11:39

标签: kentico

我有员工的自定义页面类型,其中一个字段是位置。我想只显示/过滤圣何塞"或者"旧金山"并使用下面的WHERE条件,但它没有工作。显然,我错过了一些非常基本的东西。你能帮忙吗?

Location LIKE '%San%';

我做了另一个测试,在那里我使用了具有确切字段名称的自定义表而不是页面类型,并且能够使用相同的语句进行过滤。在相关的说明中,我是Kentico的新手,并且探索哪个更适合创建/维护大约100名员工的列表 - 页面类型或自定义表格 - 能够按部门,位置等进行过滤。欣赏您的输入这里也是。最好!

3 个答案:

答案 0 :(得分:4)

如果要将WHERE条件添加到标准Kentico转发器或其他数据源中,则语法看起来正确,除非您不需要分号“;”。

您还需要仔细检查字段名称,以及是否要将查询限制为某些列(特别是对于较大的数据集,这是最佳做法),并确保选择要过滤的字段。

关于员工清单的管理,您所描述的方法都可以使用。在这种情况下,它通常取决于谁将编辑内容,以及频率。在我看来,将这些文档添加到内容树中更易于编辑。这也使您可以更快地控制订单,并使其与维护站点上的其他内容的方式类似。我还想在需要时将文件夹或其他父页面类型设置为类别,因此可以在它们之间拖放文档,并设置一个视觉分类,如果它们都存储在表中,则无法实现。如果这对您很重要,那么在树中存储项目还允许工作流和版本控制,以及对权限/访问的更细粒度控制。

答案 1 :(得分:3)

您正在考虑如何提前存储数据,这真是太棒了。需要考虑的因素有很多,例如总记录数,列数,是否需要使用工作流,版本控制,预览等等。

有关此问题的最佳信息来源是this文章,其中总结了您所拥有的所有选项,并明确说明了在哪种情况下使用哪些选项。

您的原始问题 - 您使用哪些组件来显示数据?转发器?如果是,您是否可以确保将页面类型属性设置为与您显示的页面类型相匹配?如果未配置页面类型,Kentico将不会加载任何自定义字段,因为它不知道应从哪个表加载数据。

此外,请务必在属性中包含“位置”字段,或将列留空(不推荐使用,因为Kentico会加载所有列,如200)当你从CMS_Document,CMS_Tree等计算所有内容时。)

答案 2 :(得分:1)

以下是我希望添加转发器并遇到问题时用于调试的框架。

  1. 首先获取所有列而不是访问有限列。获取所有列将确保我在检索数据时没有任何问题。

  2. 如果我遗漏了任何特定的列信息名称,那么我会仔细检查列名。

  3. 我通过启动SQL Server管理工作室并从页面类型表或自定义表访问数据来验证这一点。

  4. 如果访问SQL服务器不可用(通常在Azure托管解决方案中具有对数据库的限制访问权限),我将从设置启用SQL调试,并查看生成的查询转发器,以查看它是否正确。< / p>