kentico - 带有自定义查询的 Kentico 中继器
问题描述
好的,我们开始吧。
使用 Kentico 11/Portal 引擎(无热修复)
有一个包含仅内容页面类型的表。一个重要的字段是日期和时间字段。
我正在尝试从该表中获取与特定月份和年份条件匹配的行。例如给我所有的记录在哪里Month=2 and Year=2018
。这些参数将通过查询字符串传递,
我有一个自定义存储过程,我想接收两个 int(或字符串)参数,然后返回所有匹配行的集合。我正在使用 RepeaterWithCustomQuery 来调用该过程并处理结果行。正如您在下面看到的,查询字符串参数被命名为“year”和“monthnumber”。
查询
Me.PR.PREDetailSelect
在此配置中设置我的 Webpart 时,我收到以下错误: 在我的查询中,我尝试过:
EXEC Proc_Custom_PRDetails @MonthNumber = ##ORDERBY##; @Year = ##WHERE##<br/>
EXEC Proc_Custom_PRDetails @MonthNumber = ##ORDERBY##, @Year = ##WHERE##<br/>
EXEC Proc_Custom_PRDetails @MonthNumber = ##ORDERBY## @Year = ##WHERE##<br/>
任何帮助将不胜感激(在此先感谢布伦丹)。最后,当我试图更改名称以保护无辜者时,不要太拘泥于特定对象的名称。
解决方案
这些用于查询的宏并不意味着与 stor procs 一起使用。如果您不传递任何内容,系统会生成此错误条件 1=1,这样它就不会破坏 sql 语句,如下所示:
SELECT ##TOPN## ##COLUMNS##
FROM View_CMS_Tree_Joined AS V
INNER JOIN CONTENT_MenuItem AS C
ON V.DocumentForeignKeyValue = C.MenuItemID AND V.ClassName = N'CMS.MenuItem'
WHERE ##WHERE##
ORDER BY ##ORDERBY##
您需要将 stor proc 转换为 SQL 语句,然后您可以使用这些SQL 宏或使用不带参数的 stor proc
如果查看上面的查询和where不好,因为系统会进行调整,但是您可以使用order by 和columns,但它们都必须存在(我认为它按原样传递它们):
exec proc_test ##ORDERBY##, ##COLUMNS##
老实说,我建议不要这样做,而且调用 stor proc 不会获得太多好处。
推荐阅读
- javascript - React 中的 Fetch 在 url 之前添加 localhost
- java - 在 CoroutineDispatcher 中调用 CoroutineDispatcher 时应用程序冻结
- swift - 如何知道集合视图大纲何时展开?
- java - 使用没有范围的 RxJava 调用协程
- c++ - 如何从缓冲区创建接收器写入器?
- c# - 如何从 EventActivity 处理程序或除 OnMessageActivityAsync 之外的任何处理程序调用新对话框?
- assembly - Armv8 程序集 cmp 在运行时冻结
- javascript - 集合与有序集合
- discord.py - 如何修复 discord.py 不发送嵌入?
- python - Python multiprocessing.Process:如何将导入的目标函数的标准输出重定向到文件?