2016-11-08 51 views
-1

如何做一個網站的用戶改變有其日期時間編程設置日曆的日期(見下面的代碼)?更改日曆日期通過編程/ C#/ ASP.NET

當用戶進入提前或錯後幾個月,試圖更改日期上它只是拍攝回它設置日期時間的日曆。

是否有解決這一難題的方法嗎?

在我的例子,我們有兩種曆法,一個與當前日期時間和設置反超1每年再。

日期時間StartInputDate可以是任何日期。

基本日曆代碼/ aspx頁面

<asp:Calendar ClientIDMode="Static" SelectionMode="Day" ID="clStartDate" Height="180px" Width="230px" runat="server"><SelectedDayStyle Font-Size="medium" /></asp:Calendar>  

<asp:Calendar ClientIDMode="Static" ID="clMaintEndDate" Height="180px" Width="230px" runat="server"></asp:Calendar> 

設置日曆上加載特定日期/ ASPX.CS頁

clStartDate.SelectedDate = StartInputDate; 
clStartDate.VisibleDate = StartInputDate; 
clMaintEndDate.SelectedDate = StartInputDate.AddYears(1); 
clMaintEndDate.VisibleDate = StartInputDate.AddYears(1); 
+0

你可以發佈一些日曆加載的代碼嗎?答案取決於你正在談論哪種加載方法,加載的位置等。另外,我假設你使用的是ASP.NET。那是對的嗎? – greyseal96

回答

1

好了,沒有看到代碼對於你的加載方法,很難說肯定,但我會做一些假設。

首先,我假設你已經有了在Page_Load方法日曆設置代碼。真的嗎?如果是這樣,那麼可能是您的日曆或您網頁上的其他內容導致回發到服務器,並且日曆正在重置爲其初始值。

如果這種假設是正確的,爲了防止發生重置,您通常會將init(或初始設置)代碼放在if塊的後面,該塊將檢查頁面是否回發到服務器。這是必要的,因爲在頁面生命週期中,每次頁面呈現時都會運行Page_Load方法,無論這是第一次還是在回發之後。所以你通常會看到類似這樣的東西:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!Page.IsPostBack) 
    { 
     //Your init code goes here... 
     clStartDate.SelectedDate = StartInputDate; 
     clStartDate.VisibleDate = StartInputDate; 
     clMaintEndDate.SelectedDate = StartInputDate.AddYears(1); 
     clMaintEndDate.VisibleDate = StartInputDate.AddYears(1); 
    } 
    //Other code which should run for every page_load goes here... 
} 

第二個假設是你可能是ASP.NET開發的新手。如果是這樣,this link explaining the page lifecycle將非常有幫助。

如果上述任何假設都不正確,請更新您的帖子或對我的答案發表評論以便根據需要進行澄清,我很樂意更新我的答案。

+0

是的,你知道了。完善!謝謝。 –