我需要使用asp创建一个弹出/下拉日历:日历和文本框功能。
我已经尝试过,但是当我单击网页上的文本框时,它不会显示日历。
<div>
<asp:Label ID="Label1" runat="server" Text="From: "></asp:Label>  
<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>  
<asp:TextBox ID="TextBox2" runat="server" OnTextChanged="TextBox2_TextChanged"></asp:TextBox>
<asp:Calendar ID="Calendar2" runat="server" Visible="False"></asp:Calendar>
</div>
我还将日历设置为在文本更改时可见。
答案 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>  
<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