@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

CalendarExtenderコントローラについて

1
投稿者投稿内容
ボルビ
ベテラン
会議室デビュー日: 2007/05/23
投稿数: 52
投稿日時: 2007-08-22 19:06
こんにちわ、いつもお世話になっています。

1.CalendarExtenderコントローラを使って、テキストボックスをクリックした時に
Calendarを表示させて、選択した日付をテキストボックス設定するといった処理を
しているのですが、日付を選択したときに自動的にCalendarを消すことができない
かな〜というところで悩んでいます。

2.Calendarのタイトルに表示されている月,年とフッタの現在の月日、年のフォーマットは
 変更できないのでしょうか?

分かる方がいましたらご教授御願いいたします。

下記がソースです。

<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"
    EnableScriptGlobalization="True" EnableScriptLocalization="True" />
<div id="dateRange">
受注日:
<asp:TextBox ID="txtStartDate" runat="server" />

<asp:TextBox ID="txtEndDate" runat="server" />
<asp:Button ID="btnLookup" runat="server" Text="検索" />

<ajaxToolkit:CalendarExtender ID="CalendarExtender1" runat="server"
     TargetControlID="txtStartDate" Format="yyyy/MM/dd" />
<ajaxToolkit:CalendarExtender ID="CalendarExtender2" runat="server"
     TargetControlID="txtEndDate" Format="yyyy/MM/dd" />
</div>
</form>
ボルビ
ベテラン
会議室デビュー日: 2007/05/23
投稿数: 52
投稿日時: 2007-08-23 12:51
一部自己解決
これが正解ではないと思いますけど・・・・

1.に対してはCalendarExtenderのOnClientDateSelectionChangedでJavaScriptの関数を
呼び出して、フォーカスを移してCalendarを消すことができました。

  <script type="text/javascript" language="javascript">
function test1(){
document.body.focus();
}
</script>

  <ajaxToolkit:CalendarExtender ID="CalendarExtender1" runat="server"
  TargetControlID="txtStartDate" Format="yyyy/MM/dd"
  OnClientDateSelectionChanged="test1" />

2.は未解決です。フォーマットの変更はできないんだろうな〜〜。
chack
常連さん
会議室デビュー日: 2002/11/18
投稿数: 48
お住まい・勤務地: 埼玉県
投稿日時: 2007-08-23 21:37
こちら
http://www.asp.net/AJAX/Control-Toolkit/Live/Calendar/Calendar.aspx
にあるサンプルの3つめのように PopupButtonID を指定すれば、
日付を選択した時点でポップアップが一応消えます。

カレンダーのポップアップに表示される日時フォーマットは、CalendarExtender のソース(JavaScript)を変更しないと現状はだめですね。

もし、AJAX Control Toolkit のソースの修正が可能でしたら、
%ProgramFiles%\\Microsoft ASP.NET\\AJAX Control Toolkit\\AjaxControlToolkit\\Calendar\\CalendarBehavior.js
の886行目や943行目あたりを修正してみてください。

たとえば、943行目では、
todaysDate.localeFormat("MMMM d, yyyy");
のように、フォーマットが指定されています。
ボルビ
ベテラン
会議室デビュー日: 2007/05/23
投稿数: 52
投稿日時: 2007-08-24 11:05
chackさん
引用:

http://www.asp.net/AJAX/Control-Toolkit/Live/Calendar/Calendar.aspx
にあるサンプルの3つめのように PopupButtonID を指定すれば、
日付を選択した時点でポップアップが一応消えます。


イメージを使用したくないのでこの方法は使えないんです。

引用:

カレンダーのポップアップに表示される日時フォーマットは、CalendarExtender のソース(JavaScript)を変更しないと現状はだめですね。

もし、AJAX Control Toolkit のソースの修正が可能でしたら、
%ProgramFiles%\\Microsoft ASP.NET\\AJAX Control Toolkit\\AjaxControlToolkit\\Calendar\\CalendarBehavior.js
の886行目や943行目あたりを修正してみてください。

たとえば、943行目では、
todaysDate.localeFormat("MMMM d, yyyy");
のように、フォーマットが指定されています。



どこでフォーマットの設定をしているのか分からなかったので、有難うございました。
試してみます。
ボルビ
ベテラン
会議室デビュー日: 2007/05/23
投稿数: 52
投稿日時: 2007-08-28 10:44
引用:

chackさん
カレンダーのポップアップに表示される日時フォーマットは、CalendarExtender のソース(JavaScript)を変更しないと現状はだめですね。

もし、AJAX Control Toolkit のソースの修正が可能でしたら、
%ProgramFiles%\\Microsoft ASP.NET\\AJAX Control Toolkit\\AjaxControlToolkit\\Calendar\\CalendarBehavior.js
の886行目や943行目あたりを修正してみてください。

たとえば、943行目では、
todaysDate.localeFormat("MMMM d, yyyy");
のように、フォーマットが指定されています。



AJAX Control Toolkit のソースを修正してフォーマットの変更ができました。
有難うございました。
dev-adjust
会議室デビュー日: 2008/01/19
投稿数: 1
投稿日時: 2008-01-19 20:17
カレンダーのポップアップに表示される日時フォーマットについて同じように悩んでいて、Google 検索からこちらに辿り着きました。

CalendarExtender.js を修正すると対応できる、ということで、なるほど!と思いましたが、いろいろ考えたところ、実行時に動的に書き換える手法もあり? と思いつきました。

とりあえず、自分は、下記 JavaScript をページロード時に実行することで対応できました。

var f = AjaxControlToolkit.CalendarBehavior.prototype._performLayout.toString();
f = f.replace('"MMMM, yyyy"','"yyyy年 M月"').replace('"MMMM d, yyyy"','"yyyy年 M月 d日"');
eval("AjaxControlToolkit.CalendarBehavior.prototype._performLayout = "+f);

自分のブログにも綴ってみました。
http://devadjust.exblog.jp/7018028/
ボルビ
ベテラン
会議室デビュー日: 2007/05/23
投稿数: 52
投稿日時: 2008-01-22 19:22
CalendarExtender.jsを修正しなくてもできるんだ〜。
試してみます〜有難う御座いました。



1

スキルアップ/キャリアアップ(JOB@IT)