2011-01-28 66 views
1

Kentico CMS遇到了很多問題,但我終於找到了一個靠近的地方。我使用普通的門戶引擎並在本地安裝上運行Kentico 5.5 RC2。Kentico - 使用日曆來過濾預訂系統事件

我目前有一個事件頁面,它使用中繼器來顯示系統當前可用的所有事件。我想使用日曆來過濾該中繼器中的事件。我會怎麼做呢?

回答

3

有幾種方法。

  • 自定義用戶控件
  • 自定義Web部件
  • 查詢字符串參數

最簡單的將是最後一個。或者前兩個和最後一個的組合。通過您的首選方法添加您的日曆控件(AJAX日曆,jQuery日曆,< asp:日曆>或任何您喜歡的)並將其填充到文本字段中。然後運行一些JavaScript來更改將重新加載頁面的URL查詢字符串。

轉到您的Kentico repeater的web部件屬性。在Content filter->WHERE condition字段中,可以編寫標準SQL WHERE子句並通過特殊宏注入查詢字符串參數:{?QUERYSTRINGPARAMETERNAME?}。例如,http://url/page?myfilter=2將是{?myfilter?}。這將使WHERE子句如下所示:{?myfilter?} = '' OR {?myfilter?} = SqlFieldToCompare

Kentico聲稱他們爲了安全而逃脫了這個宏,儘管我沒有親自證實。雖然適合我們。

如果您使用客戶用戶控件或Web部件,則可以使用控件宏(而不是上面的QueryString宏)更安全的回發方法。

有關宏的更多信息,請參閱Developer's Guide Appendix A Macros

+0

真棒,這回答了很多。雖然對我來說只是一個小問題,但我不知道如何將vanilla asp.net添加到頁面中。你能指出我正確的方向來弄清楚如何添加像文本框或按鈕的東西嗎?另外如何在單個頁面上執行代碼隱藏? (例如,如果我使用上面的,我需要點擊C#代碼來說textbox1.Text = calendar1.SelectedDate.ToShortDateString()等)我認爲,我可以繼續前進Kentico更進一步。如果不能操縱.net代碼和代碼隱藏事情真的很難! – 2011-01-31 09:53:07