問題の説明:
ドロップダウンリストとテキストボックスを備えたシンプルなダイアログがあります。ドロップダウンリストの値に応じて、必要な値は、単純なテキスト、日付、またはデータベースからの特定のテキストのいずれかになります。最初のケースでは、私が持っている単純なテキストボックスは問題なく機能します。2番目のケースでは、日付ピッカーが必要です。3番目のケースでは、テキストボックスを保持しますが、オートコンプリート関数を追加します。
私の問題は2番目のケースです。JQuery Datepickerを試しましたが、正常に動作しますが、サーバー側のWeb UIコントロールである別の(フレームワーク固有の)datepickerを使用する必要があります。
ドロップダウンリストから日付タイプを選択すると、テキストボックスを非表示にし(JQueryを使用)、(非表示の)日付ピッカーを表示します。その逆も同様です。非表示は問題なく機能しますが、保存しようとすると、サーバー側の保存機能がDatePickerが非表示になったことを認識できません。これを行う必要がある理由は、現在表示されている日付ピッカーまたはテキストボックスに応じて、DatePickerまたはTextboxから値を保存するタイミングを知りたいためです。
私はcssに関連するすべてを試しましたが、サーバーはそれらの属性を真以外のものとして認識できないようです。
可能な解決策:
1)「ハック」ソリューションを実行して非表示のテキストボックスを追加し、日付ピッカーを切り替えるたびにtrueまたはfalseの文字列を渡すことができます。このようにして、保存時にテキストボックスの値をチェックして、日付ピッカーが非表示になっているかどうかを確認できます。
2)もう1つ(現在テスト中)は、ブール入力を受け取り、datepickerのフレームワークに追加するカスタム可視性属性をtrueまたはfalseに設定するvoid関数を.csファイルに作成することです。日付ピッカーを切り替えるときはいつでも、AJAX呼び出しを使用してその関数を呼び出し、サーバー側の日付ピッカー属性を変更します。しかし、[保存]をクリックするまでこの属性が変更されたままになるのか、それとも何らかの形でデフォルト値に戻るのかはわかりません。
私の質問: 上記の解決策のいずれかがあなたにとって問題ないと思われますか、そしてその理由は何ですか?もっと良いものを思いつくことができますか?