2011-01-28 15 views
1

Kentico CMSを使用するには多くの問題がありますが、最終的にどこかに近づいています。私は通常のポータルエンジンを使用しており、ローカルインストールでKentico 5.5 RC2を実行しています。Kentico - カレンダーを使用して予約システムのイベントをフィルタリングする

私は現在、リピーターを使用して現在システム上で利用可能なすべてのイベントを表示するイベントページを持っています。私はカレンダーを使用して、そのリピーターのイベントをフィルターに掛けることができます。私はこれについてどうやって行くのですか?

答えて

3

いくつかの方法があります。最も簡単には最後のものであろう

  • カスタムユーザーコントロール
  • カスタムWebパーツ
  • クエリ文字列パラメータ

。または最初の2つと最後のものの組み合わせ。あなたの好みの方法(AJAXカレンダー、jQueryカレンダー、< asp:カレンダー>など)を使用してカレンダーコントロールを追加し、テキストフィールドに入力します。次に、ページをリロードするURLクエリ文字列を変更するJavaScriptを実行してください。

KenticoリピーターのWebパーツのプロパティに移動します。 Content filter->WHERE conditionフィールドでは、標準のSQL WHERE句を作成し、クエリマクロの文字列パラメータを特殊マクロ:{?QUERYSTRINGPARAMETERNAME?}で挿入できます。例えばhttp://url/page?myfilter=2{?myfilter?}となります。そうすればWHERE節は{?myfilter?} = '' OR {?myfilter?} = SqlFieldToCompareのようになります。

Kenticoは、私が個人的に確認していないものの、セキュリティのためにマクロを逃れると主張しています。私たちのために働く。

顧客のユーザーコントロールまたはWebパーツを使用した場合、(上記のQueryStringマクロの代わりに)Controlマクロでより安全なポストバックメソッドを使用できます。

マクロの詳細については、Developer's Guide Appendix A Macrosを参照してください。

+0

素晴らしいです。私にとってはちょっとした問題ですが、バニラasp.netをページに追加する方法はわかりません。あなたは、テキストボックスやボタンのようなものを追加する方法を理解する正しい方向に私を指すことができますか? 1つのページでコードビハインドを実行する方法もありますか? (たとえば、上記のを使用している場合は、C#コードを押してtextbox1.Text = calendar1.SelectedDate.ToShortDateString()などと言う必要があります)私はそれを考えると、 Kenticoとのさらなる協力.netコードやコードビハインドを操作することができなくても、本当に難しいことです! –

+0

実際、私は今それを(カスタムWebパーツを使って)考え出しました。今私は別の問題を抱えている、私はあなたが上記のように 'WHERE'マクロを使用しようとしているが、私はファイル内のフィールドに到達する方法がわからない。たとえば、イベントデートにはどうすればアクセスできますか?変換では、<%#Eval( 'EventDate')%>を使用していますが、それは問題ありませんが、ここでどのように使用するかはわかりません。 –

+0

気にしないで!もう一度それを考え出す:)。ご協力いただきありがとうございます。 –