【问题标题】:What do I need to do to show the calendar when button is clicked?单击按钮时我需要做什么才能显示日历?
【发布时间】:2011-09-06 09:19:57
【问题描述】:

我正在尝试制作一个在单击按钮 (...) 时弹出的日历,但我被卡住了,不知道我必须做什么。下面是我正在使用的代码。我使用 Visual Studio 2010 和 C# 作为我的编程语言。

<asp:textbox id="TextBox1" runat="server"></asp:textbox>
<input type="button" id="Button2" runat="server" value="...."><br>
<asp:Panel id="pnlCalendar" runat="server" 
     style="POSITION: absolute">
 <asp:calendar id="Calendar3" runat="server" CellPadding="4" 
      BorderColor="#999999" Font-Names="Verdana" Font-Size="8pt" 
      Height="180px" ForeColor="Black" DayNameFormat="FirstLetter" 
      Width="200px" BackColor="White">
  <TodayDayStyle ForeColor="Black" BackColor="#CCCCCC"></TodayDayStyle>
  <SelectorStyle BackColor="#CCCCCC"></SelectorStyle>
  <NextPrevStyle VerticalAlign="Bottom"></NextPrevStyle>
  <DayHeaderStyle Font-Size="7pt" Font-Bold="True" BackColor="#CCCCCC">
  </DayHeaderStyle>
  <SelectedDayStyle Font-Bold="True" ForeColor="White" BackColor="#666666">
  </SelectedDayStyle>
  <TitleStyle Font-Bold="True" BorderColor="Black" BackColor="#999999">
  </TitleStyle>
  <WeekendDayStyle BackColor="LightSteelBlue"></WeekendDayStyle>
  <OtherMonthDayStyle ForeColor="#808080"></OtherMonthDayStyle>
 </asp:calendar>
</asp:Panel>

【问题讨论】:

    标签: c# asp.net .net datetime


    【解决方案1】:

    ASP.NET 日历很难以这种方式使用。更简单的方法是使用AJAX CalendarJQuery DatePicker

    【讨论】:

    • 我同意 Ajax 或 JQuery 会是更好的选择。
    【解决方案2】:

    您可以考虑使用jQuery UI Date picker ...灵活的客户端,使用NuGet设置需要两分钟

    将 NuGet 安装到您的 VS 并键入 Install-Package jQuery.UI.Combined

    包含所需的 javascript 库,按照示例进行操作即可;)

    【讨论】:

    • ...我安装了 NuGet。请你指导我接下来要做什么。谢谢你的耐心
    • 我认为这个页面有你需要的所有信息;)docs.nuget.org/docs/start-here/…
    【解决方案3】:

    如果您真的想在服务器端执行此操作,那么您可以这样做。

    bool showCalendar = false;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (showCalendar)
            Calendar1.Visible = true;
        else
            Calendar1.Visible = false;
    }
    
    protected void Button1_Click(object sender, EventArgs e)
    {
        Calendar1.Visible = true;
    }
    

    基本上将 Calendar.Visible 设置为 false,当用户单击按钮时将其设置为 true,但一旦设置为 true.. 它并没有真正弹出,而是使用回发添加控制

    【讨论】:

      【解决方案4】:

      当有人点击文本字段本身时,您可以这样做。

              <asp:Label ID="lblDate"  runat="server" Text="Date :"></asp:Label>
              <asp:TextBox ID="txtDate" runat="server" ></asp:TextBox> YYYY-MM-DD
              <asp:CalendarExtender ID="CalendarExtender1" TargetControlID="txtDate" runat="server" Format="yyyy-MM-dd">
              </asp:CalendarExtender> 
      

      【讨论】:

        猜你喜欢
        • 2018-06-29
        • 2019-05-30
        • 2018-02-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-26
        • 1970-01-01
        • 2019-12-30
        • 2020-11-23
        相关资源
        最近更新 更多