【问题标题】:Calendar control in asp.net c#asp.net c#中的日历控件
【发布时间】:2026-01-28 18:15:01
【问题描述】:

我的 ASP.NET Web 应用程序中有一个文本框和一个日历。

当我在日历中选择任何日期时,我希望该日期的日期/月份/年份显示在文本框中。

【问题讨论】:

标签: c# asp.net


【解决方案1】:

在 .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();
}

【讨论】:

    【解决方案2】:

    在你提问之前总是使用谷歌:http://www.google.co.in/search?q=asp.net+%2B+calander+control+%2B+textbox&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

    检查下面的答案

    private void Calendar1_SelectionChanged(System.Object sender, System.EventArgs e)
    {
        TextBox1.Text = Calendar1.SelectedDate;
    }
    

    使用OnClientDateSelectionChanged。类似的例子在这里解释得很好 CalendarExtender Change date with Javascript

    Calendar Demonstration

    【讨论】:

      【解决方案3】:

      假设您已经使用 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();
      }
      

      【讨论】:

        【解决方案4】:

        您也可以尝试查看 Ajax Toolkit CalendarExtender。这为您提供了一个文本框,当您单击该文本框时,它会打开一个日历,并且所选日期会自动添加到文本框中。

        http://www.asp.net/ajax/ajaxcontroltoolkit/samples/calendar/calendar.aspx

        【讨论】:

          【解决方案5】:

          处理日历控件的“SelectionChanged”事件,并在事件内部编写这段代码,

          txtbox.Text = Calendar1.SelectedDate;
          
          txtbox.Invalidate();
          

          【讨论】:

            【解决方案6】:
            <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>
            

            【讨论】: