4

<ajaxToolkit:CalendarExtender>のページにオブジェクトがあります。選択した日付を無効にしますTextBox(開始時に今日の日付が入力されます)。そのカレンダーには、システムがデフォルトの操作を実行する「なし」オプションが必要です(今日のオプションがあるように)。これは可能ですか?これに関する情報をインターネットで検索しましたが、関連する情報は見つかりませんでした。私は何かを逃したのだろうか。または、別のロジックを実装するTextBox必要がありますか?

「なし」オプションを提供するasp.netで使用できる、ajaxツールキットカレンダーエクステンダーとは異なるカレンダーオブジェクトはありますか?

それが単なる「いいえ」だと思っても、私はまだ答えを求めています(少なくとも少し文書化されています)。

4

1 に答える 1

2

利用可能なオプションは 2 つあります。最初のオプションは、テキスト ボックスの横に html 要素を追加し、javascript でクリック イベントを処理することです。このイベント ハンドラーでは、カレンダー エクステンダーをクリアします。これはコードです:

 <script type="text/javascript">
      function clearDate(extenderId) {
           $find(extenderId).set_selectedDate(null);
      }
 </script>

<asp:TextBox runat="server" ID="Date1" autocomplete="off" />
<input type="button" value="x" onclick="clearDate('<%= defaultCalendarExtender.ClientID %>')" /> 
<br />
<ajaxToolkit:CalendarExtender ID="defaultCalendarExtender" runat="server" 
    TargetControlID="Date1" />

2 つ目の解決策は、AjaxControlToolkit プロジェクトのソースを調整することです。実際には、ファイルのみを変更する必要がありClient/MicrosoftAjax.Extended/Calendar/CalendarBehavior.pre.jsます。以下のコードに置き換えます。各変更を段階的に説明するのが面倒なので、実際には多くのコードがあります;)簡単に言えば、カレンダーのポップアップフッターに新しい要素を追加して、選択された日付が指定されている場合はデフォルトの選択値にリセットするか、null にリセットしました. CalendarBehavior.pre.js の横にあるCalendar.cssファイルも微調整できます。

巨大な回答が制限されているため、私はpastebinにjavascriptコードを投稿しました Pastebin link

于 2012-09-27T14:26:48.573 に答える