【发布时间】:2026-01-28 18:15:01
【问题描述】:
我的 ASP.NET Web 应用程序中有一个文本框和一个日历。
当我在日历中选择任何日期时,我希望该日期的日期/月份/年份显示在文本框中。
【问题讨论】:
-
您可以使用ajax工具包日历扩展控件,它完全符合您的要求,您可以在asp.net/ajax/ajaxcontroltoolkit/samples/calendar/calendar.aspx查看此控件的演示和示例
我的 ASP.NET Web 应用程序中有一个文本框和一个日历。
当我在日历中选择任何日期时,我希望该日期的日期/月份/年份显示在文本框中。
【问题讨论】:
在 .aspx 文件中
<form id="form1" runat="server">
<div>
<asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged">
</asp:Calendar>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></div>
</form>
在 .aspx.cs 文件中
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
TextBox1.Text = Calendar1.SelectedDate.ToString();
}
【讨论】:
检查下面的答案
private void Calendar1_SelectionChanged(System.Object sender, System.EventArgs e)
{
TextBox1.Text = Calendar1.SelectedDate;
}
或
使用OnClientDateSelectionChanged。类似的例子在这里解释得很好
CalendarExtender Change date with Javascript
或
【讨论】:
假设您已经使用 onselectionchanged 事件但没有直接看到结果,您可以使用这样的更新面板
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<asp:Calendar ID="Calendar1" runat="server"
onselectionchanged="Calendar1_SelectionChanged"></asp:Calendar>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</asp:UpdatePanel>
如果您只是在寻找活动,那么它看起来像这样
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
TextBox1.Text = Calendar.cal.SelectedDate.ToString();
}
【讨论】:
您也可以尝试查看 Ajax Toolkit CalendarExtender。这为您提供了一个文本框,当您单击该文本框时,它会打开一个日历,并且所选日期会自动添加到文本框中。
http://www.asp.net/ajax/ajaxcontroltoolkit/samples/calendar/calendar.aspx
【讨论】:
处理日历控件的“SelectionChanged”事件,并在事件内部编写这段代码,
txtbox.Text = Calendar1.SelectedDate;
txtbox.Invalidate();
【讨论】:
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<asp:Calendar ID="Calendar1" runat="server"
onselectionchanged="Calendar1_SelectionChanged"></asp:Calendar>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</asp:UpdatePanel>
【讨论】: