有很多问题要掌握Kentico CMS,但我终于到了某个地方。我正在使用普通的门户引擎并在本地安装上运行Kentico 5.5 RC2。
我目前有一个事件页面,它使用转发器显示当前系统上可用的所有事件。我想使用日历来过滤该转发器中的事件。我该怎么做呢?
答案 0 :(得分:3)
有几种方法。
最简单的是最后一个。或者前两个与最后一个的组合。通过首选方法(AJAX日历,jQuery日历,< asp:Calendar>或您喜欢的任何内容)添加日历控件,并将其填充到文本字段中。然后运行一些JavaScript来更改将重新加载页面的URL查询字符串。
转到Kentico转发器的Web部件属性。在Content filter->WHERE condition
字段中,您可以编写标准SQL WHERE子句并通过特殊宏注入查询字符串参数:{?QUERYSTRINGPARAMETERNAME?}
。例如,http://url/page?myfilter=2将是{?myfilter?}
。这会使WHERE
子句类似于:{?myfilter?} = '' OR {?myfilter?} = SqlFieldToCompare
。
Kentico声称他们为了安全而逃离了这个宏,尽管我没有亲自证实这一点。虽然适用于我们。
如果您使用客户用户控件或Web部件,则可以使用更安全的回发方法和Control宏(而不是上面的QueryString宏)。
有关宏的详细信息,请参阅Developer's Guide Appendix A Macros。