2014-05-21 20 views
0

我知道人們之前已經通過互聯網問過這個問題,但是我還沒有使用過ant Javascript,並且已經做到了非常基本。保持ASP.NET日曆在月開放點擊

基本上,當他們點擊一個文本框旁邊的(ImageButton)圖標時,它會在C#中觸發一個OnClick事件,這會使Calender變得可見。然後,當他們選擇了該日曆上的任何內容時,它將在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; 
} 

問:我怎樣才能讓壓延住宿visable當他們點擊只看到下個月。

回答

1

您的示例代碼正常工作。當您更改所選月份時,不會觸發'SelectionChange'事件。

沒有爲一個月的變化(VisibleMonthChanged),在那裏你可以隱藏日曆,但要實現你只想確保你不會在你的代碼隱藏日曆其他地方有什麼不同的事件:

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

1

使用此代碼

  1. 日曆不會在頁面加載顯示
  2. 日曆會告訴你,當無線LL點擊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; 
} 
消失後消失