0

ajaxポップアップカレンダーを作成しようとしています。したがって、ユーザーが画像ボタンをクリックすると、カレンダーがポップアップし、カレンダーから選択した日付がテキストボックスにバインドされます。

これは私のaspxコードです:

<asp:TextBox ID="txtBxDate" runat="server" MaxLength="10" Width="75px">
</asp:TextBox>
<asp:ImageButton ID="ImageButton1" runat="server" 
ImageUrl="~/images/toolbox.gif" />
<asp:PopupControlExtender ID="ImageButton1_PopupControlExtender" runat="server" 
DynamicServicePath="" Enabled="True" ExtenderControlID="" 
PopupControlID="Panel1" Position="Bottom" TargetControlID="ImageButton1">
</asp:PopupControlExtender>
<asp:Panel ID="Panel1" runat="server" Width="200px">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Calendar ID="Calendar1" runat="server" 
onselectionchanged="Calendar1_SelectionChanged"></asp:Calendar>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>

背後にある私のコード:

protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
    txtBxDate.Text = Calendar1.SelectedDate.ToString();
}

しかし、カレンダーから日付を選択したとき、選択した日付はテキストボックスにバインドされていませんでした。私がここで間違っていることは何ですか?またはどうすれば修正できますか?

4

2 に答える 2

2

更新されない理由txtBxDateは、の外にあるためですUpdatePanel。カレンダーと一緒に更新パネルに配置するかtxtBxDate、別の更新パネルに配置します。

編集

コードをもう少し詳しく調べたところ、AJAXToolkitCalendarコントロールにすでに組み込まれている機能を手動で作成しようとしているようです。

こちらをご覧ください:カレンダーサンプル

于 2012-04-18T14:22:46.133 に答える
1

あなたはあなたを持っているようでtargetcontrolidpopupcontrolid混乱しています。私はそれがすべきだと思います:

PopupControlID="ImageButton1" TargetControlID="txtBxDate"

テキストフィールドで選択した日付を設定するコードビハインドを取り除くことができます。カレンダーエクステンダーはそれを自動的に処理する必要があります。

于 2012-04-18T14:20:13.623 に答える