如何将日历选定值绑定到 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();
}
但是,当我从日历中选择日期时,所选日期未绑定到文本框。我在这里做错了什么?或者我该如何解决它?
它
不更新的原因是因为txtBxDate
在UpdatePanel
之外。将txtBxDate
与日历一起放入更新面板中,或将其放在单独的更新面板中。
编辑
在更仔细地检查代码后,您似乎正在尝试手动创建已内置到 AJAX 工具包Calendar
控件中的功能。
请参阅此处: 日历示例
看来你targetcontrolid
和popupcontrolid
混为一谈。我认为应该是:
PopupControlID="ImageButton1" TargetControlID="txtBxDate"
您可以摆脱在文本字段上设置所选日期的代码隐藏。日历扩展器应自动处理此问题。