如何在Asp.net C#中创建弹出/下拉日历

时间:2019-06-28 06:12:00

标签: c# asp.net

我需要使用asp创建一个弹出/下拉日历:日历和文本框功能。

我已经尝试过,但是当我单击网页上的文本框时,它不会显示日历。

<div> 
         <asp:Label ID="Label1" runat="server" Text="From: "></asp:Label> &nbsp 
         <asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged"></asp:TextBox>
         <asp:Calendar ID="Calendar1" runat="server" Visible="False"></asp:Calendar>

        <asp:Label ID="lblTo" runat="server" Text="To: "></asp:Label> &nbsp  
         <asp:TextBox ID="TextBox2" runat="server" OnTextChanged="TextBox2_TextChanged"></asp:TextBox>
         <asp:Calendar ID="Calendar2" runat="server" Visible="False"></asp:Calendar>
</div>

我还将日历设置为在文本更改时可见。

2 个答案:

答案 0 :(得分:0)

当您希望在按钮单击或您喜欢的东西中可见压光机时,调用此命令

  protected void Calendar1_SelectionChanged(object sender, EventArgs e)
        {
            TextBox1.Text = this.Calendar1.SelectedDate.ToString();
        }
protected void TextBox1_TextChanged(object sender, EventArgs e)
        {

            TextBox1.Text = Calendar1.SelectedDate.ToShortDateString();
            Calendar1.Visible = true;
        }

答案 1 :(得分:0)

由于textBox没有默认的autopostback属性true,因此您需要为文本框手动设置AutoPostBack="True"。因此,每当textbox_text更改时,服务器端代码就会运行。

WebForn设计页面

<asp:Label ID="Label1" runat="server" Text="From: "></asp:Label> &nbsp 
<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" AutoPostBack="True"></asp:TextBox>
<asp:Calendar ID="Calendar1" runat="server" Visible="False" OnSelectionChanged="selection_changed"></asp:Calendar>

服务器端

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    Calendar1.Visible = true;
}
protected void calender_selection_changed(object sender, EventArgs e)
{
    TextBox1.Text = Calendar1.SelectedDate.ToString();
    Calendar1.Visible = false;
}

类似地,对于textbox2进行更改

<asp:TextBox ID="TextBox2" runat="server" OnTextChanged="TextBox2_TextChanged" AutoPostBack="True"></asp:TextBox>

在此处检查more info