如何将日历选定值绑定到 txt bx

本文关键字:绑定 txt bx 日历 | 更新日期: 2023-09-27 18:31:35

我正在尝试创建一个 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();
}

但是,当我从日历中选择日期时,所选日期未绑定到文本框。我在这里做错了什么?或者我该如何解决它?

如何将日历选定值绑定到 txt bx

不更新的原因是因为txtBxDateUpdatePanel之外。将txtBxDate与日历一起放入更新面板中,或将其放在单独的更新面板中。

编辑

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

请参阅此处: 日历示例

看来你targetcontrolidpopupcontrolid混为一谈。我认为应该是:

PopupControlID="ImageButton1" TargetControlID="txtBxDate"

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