在掌握 Kentico CMS 时遇到了很多问题,但我终于接近了。我正在使用普通的门户引擎并在本地安装上运行 Kentico 5.5 RC2。
我目前有一个事件页面,它使用转发器来显示当前系统上可用的所有事件。我想使用日历来过滤该中继器中的事件。我该怎么办?
有几种方法。
最简单的应该是最后一个。或者前两个与最后一个的组合。通过您喜欢的方法(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 宏)的更安全的回发方法。
有关宏的更多信息,请参阅开发人员指南附录 A 宏。