簡體   English   中英

保持ASP.NET日歷在月份打開單擊

[英]Keep ASP.NET Calender Open On Month Click

我知道之前人們通過互聯網問過這個問題,但是我沒有使用過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;
}

問題:如何在日歷點擊下個月時讓日歷保持可見狀態。

您的示例代碼按預期工作。 當您更改所選月份時,它不會觸發“SelectionChange”事件。

月份更改有單獨的事件(VisibleMonthChanged),您可以在其中隱藏日歷,但要實現您想要的目標,請確保不要在代碼中的其他位置隱藏日歷:

protected void ClanderDOI_VisibleMonthChanged(object sender, MonthChangedEventArgs e) { ClanderDOI.Visible = true; }

使用此代碼

  1. 日歷不會顯示在頁面加載
  2. 您將單擊SelectDate(btnSelectDate)按鈕時顯示日歷
  3. 日期將在日期選擇后消失
  4. 日歷不會在下個月的選擇中消失
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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM