我知道之前人们已经通过互联网问过这个问题,但是我还没有使用过ant Javascript并且已经完成了非常基本的工作。
基本上,当他们单击文本框旁边的(ImageButton)图标时,它将在C#中触发OnClick事件,这将使日历可见。然后,当他们在该日历上选择任何内容时,它将触发c#agian上的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;
}
问题:如果日历仅在下个月点击查看,我怎样才能使日历保持可见。
答案 0 :(得分:1)
您的示例代码按预期工作。当您更改所选月份时,它不会触发“SelectionChange”事件。
月份更改(VisibleMonthChanged)有单独的事件,您可以在其中隐藏日历,但要实现您想要的目标,请确保不要在代码中的其他位置隐藏日历:
protected void ClanderDOI_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
{
ClanderDOI.Visible = true;
}
答案 1 :(得分:1)
使用此代码
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;
}