【问题标题】:Kentico transformation on a repeater with a custom query带有自定义查询的中继器上的 Kentico 转换
【发布时间】:2016-06-29 23:37:37
【问题描述】:

我有一个 MS SQL 数据库表,其中包含有关大学课程的信息。这是中继器内部的自定义查询,带有当前在 Kentico 中使用的自定义查询(我没有写这个)。

SELECT 'ALL' AS Course,
'All' AS CourseProgram,
'1' as ID

UNION

SELECT DISTINCT SUBJ_CODE AS COURSE
SUBJ_DESC AS CourseProgram,
NULL AS ID
ORDER BY ID DESC, Course

截至目前,课程按课程名称排序,每个部分单独列出...

courseName1 - courseCode1 - courseNum1 - courseSection1
Course Information

courseName1 - courseCode1 - courseNum1 - courseSection2
Course Information

如果课程名称、课程代码和课程编号相同...我希望将课程部分列在下面。类似这样...

courseName1 - courseCode1 - courseNum1
--- courseSection1 - Course Information
--- courseSection2 - Course Information

有人告诉我,最好的方法是在带有自定义查询的中继器内部使用转换,而不是在中继器中放置中继器。

我认为最简单的方法是将 courseName、courseCode 或 courseNum 作为标题。然后有一个循环来检查标题是否已更改。有人写了一些伪代码,但我是 Kentico 的新手,不确定这会起作用/这意味着什么。

{%
heading = courseNum
isNewHeading = true;
If(isNewHeading) {
text = "<option value=\""+Course+"\">"+courseProgram+"</option>";
courseNum
}
return text;
#%}

任何帮助将不胜感激。我不知道从这里去哪里是 Kentico 的新手而不是编写原始代码。谢谢!

【问题讨论】:

  • 仅供参考,这不是伪代码,它是 K# 一种 Kentico 特定的宏语言。你可以在这里找到更多关于语法的信息:docs.kentico.com/display/K9/Macro+syntax 还有一个可用的视频,可以在这里找到(请注意一些宏从那时起不可用,并且添加了更多):vimeo.com/8197623

标签: sql transformation kentico


【解决方案1】:

在中继器中,您需要选择您的课程。在转换中,您可以使用 K# 语法来检索与该类匹配的所有课程。

你没有写课程是什么,是页面类型吗? 如果课程和课程是页面类型并且课程是课程的子课程,您可以设置类似的转发器:

Repeater - 确保列中有 NodeAliasPath

转型中

{%CourseName%} {%CourseSection%} {%CourseNum%}
{% Documents[NodeAliasPath].Children.WithAllData.ApplyTransformation("namespace.class.transformationcodename") %}

它将选择类下的所有文档。您应该优化此转换以获得更好的性能。

【讨论】:

    【解决方案2】:

    嵌套转发器与嵌套查询实际上并没有什么不同,只是您可以在转发器上设置缓存,而使用查询则要困难一些。在我看来,最好的办法是为此写一个custom transformation method。通过这种方式,您可以设置缓存并优化您的查询,以免对您的系统造成负担。

    另一种选择是以分层格式设置数据。然后,您可以使用分层查看器来显示您的数据,在我看来,这些数据已针对此类事情进行了优化。 Here is a good article 在 Kentico 中加载分层数据。

    【讨论】:

      猜你喜欢
      • 2018-12-22
      • 2017-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-06
      相关资源
      最近更新 更多