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

它不更新的原因是因为txtBxDateUpdatePanel. 要么将txtBxDate日历放入更新面板,要么将其放入单独的更新面板。

编辑

在更仔细地检查您的代码之后,您似乎正在尝试手动创建已内置到 AJAX ToolkitCalendar控件中的功能。

请参阅此处:日历示例

于 2012-04-18T14:22:46.133 回答
1

看来你有你的targetcontrolidpopupcontrolid混淆了。我认为应该是:

PopupControlID="ImageButton1" TargetControlID="txtBxDate"

您可以摆脱在文本字段上设置所选日期的代码隐藏。日历扩展器应该自动处理这个问题。

于 2012-04-18T14:20:13.623 回答