- PR -

ASP.NET AJAX CalendarExtenderのデータの取得について

1
投稿者投稿内容
会議室デビュー日: 2006/05/29
投稿数: 7
投稿日時: 2008-01-08 19:01
開発環境は
Windows vista
Visual studio 2005
VB
SQLServer2005ExpressEdition
ajaxcontroltoolkit
です。

テキストボックスにCalendarExtenderを使用して日付の入力を
し、データベースから検索をしたいのですが、
日付を選択後、「検索」のボタンを押して
テキストボックスからデータを取り出すと選択した日付が
入っていなくて初期設定の日付のままになってしまいます。
どのようにすればいいのでしょうか。
基本的なことが分かっていないかもしれませんが、
よろしくお願いします。

<body>
<form id="form1" runat="server">
<div>
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnableScriptGlobalization="true" EnableScriptLocalization="true">
</ajaxToolkit:ToolkitScriptManager>

<asp:TextBox ID="txtDay" runat="server" ReadOnly="true"></asp:TextBox>
<asp:ImageButton ID="ibtnCalender" runat="server" ImageUrl="calendar.png" OnClientClick="return false;"/>
<ajaxToolkit:CalendarExtender ID="actCalender" runat="server" Format="yyyy年MM月dd日" TargetControlID="txtDay" PopupButtonID="ibtnCalender">
</ajaxToolkit:CalendarExtender>
<asp:ImageButton ID="ibtnSearch" runat="server" ImageUrl="search.png"/>

</div>
</form>
</body>


Protected Sub ibtnSearch_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ibtnSearch.Click
MsgBox(Me.txtDay.Text) '選択した日付が反映されない。
End Sub

Tesla
常連さん
会議室デビュー日: 2007/03/13
投稿数: 30
投稿日時: 2008-01-08 21:12
txtDay.ReadOnlyをFalseにしたところ、ibtnSearch_Clickで入力日付を参照できました。

TextBox.ReadOnly プロパティ (System.Web.UI.WebControls)
http://msdn2.microsoft.com/ja-jp/library/system.web.ui.webcontrols.textbox.readonly(VS.80).aspx

ReadOnly プロパティを true に設定した TextBox コントロールの Text 値は、ポストバックの発生時にサーバーに送信されます。ただし、読み取り専用テキスト ボックスはサーバーで処理されません。これにより、悪意のあるユーザーが読み取り専用の Text 値を変更できなくなります。Text プロパティの値は、サーバー側のコードで変更する場合を除き、次のポストバックが発生するまでビューステートに保存されます。
会議室デビュー日: 2006/05/29
投稿数: 7
投稿日時: 2008-01-09 09:21
Teslaさん、ありがとうございました。

てっきりCalendarExtender側の問題とばかりいろんなところを
探し回っていました。

ReadOnlyをtrueにしたのは誤った入力をさせないように
カレンダーからの選択のみにしたかったからですが、
入力チェックを入れるようにして対応しようと思います。
1

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