让ASP.. NET日历按月打开
本文关键字:日历 ASP NET | 更新日期: 2023-09-27 18:04:18
我知道以前有人在网上问过这个问题,但我没有使用过ant Javascript,并且已经做了非常基本的。
基本上,当他们点击文本框旁边的(ImageButton)图标时,它将触发c#中的OnClick事件,这将使日历可见。然后,当他们选择日历上的任何内容时,它将再次触发c#的SelectionChanged,然后将在文本框中设置他们点击的日期。
HTML<input id="txt_DateOfInterview" type="Date" class="aclass" runat="server" />
<asp:ImageButton runat="server" imageurl="~/Images/Calender.png" id="calendericonDOI" CssClass="calendericonDOI ClanderDOI" OnClick="calendericonDOI_Click" ></asp:ImageButton>
<asp:calendar runat="server" ID="ClanderDOI" CssClass="ClanderDOI" OnSelectionChanged="ClanderDOI_SelectionChanged" BorderColor="#6a3d98">
<TitleStyle BackColor="Orange"/>
</asp:calendar>
c# protected void calendericonDOI_Click(object sender, ImageClickEventArgs e)
{
ClanderDOI.Visible = true;
}
protected void ClanderDOI_SelectionChanged(object sender, EventArgs e)
{
txt_DateOfInterview.Value = ClanderDOI.SelectedDate.Date.ToString("d");
ClanderDOI.Visible = false;
}
问题:当他们点击查看下个月时,我怎样才能使日历保持可见
您的示例代码可以正常工作。当你更改选定的月份时,它不会触发'SelectionChange'事件。
有一个单独的事件为月的变化(VisibleMonthChanged),你可以隐藏日历,但要实现你想要的只是确保你没有隐藏日历在你的代码的其他地方:
protected void ClanderDOI_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
{
ClanderDOI.Visible = true;
}
使用这段代码
- 日历将不显示在页面加载
- 日历将显示当你点击选择日期(btnSelectDate)按钮
- 选择日期后日历将消失
- 选择下个月时日历不会消失
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Calendar1.Visible = false;
}
}
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
Calendar1.Visible = false;
}
protected void btnSelectDate_Click(object sender, EventArgs e)
{
Calendar1.Visible = true;
}