2011-04-29 116 views
0

如何根據用戶選擇生成動態控件?生成動態日曆控件

我就已經出現了一個實際測試最近因爲那裏有下面提到的要求

  1. 他們有2個日曆(asp.net默認)。

  2. 他們有兩個選擇(單選按鈕列表):一個是 「重複開」 和另一個 「重複」

重複上有2下拉:

1)日下拉:它值分別爲:每週,每隔一天,每三天

2)持續時間下拉:它值分別爲:日,月,周,年

重複有2下拉:

1)周:該值分別爲第一週,第二週,第三週

2)日:週日,週一....週六

現在,當我點擊第一個日曆的日期如說2010年8月10日,第二個日期爲2011年1月26日,那麼我想生成的動態日曆應顯示從八月到一月的日曆(包括兩者)

過濾器的目的,如果我選擇第一個星期天(來自REPEATED ON選項),則應選擇動態日曆的第一個星期日。如果我每隔三天選擇一次,則應選擇每隔3天(在動態生成的日曆中)

我所做的是:可以通過創建日曆類對象來生成動態日曆。是嗎?再加上我搜索谷歌,他們表明,DayRender事件可能是一個可能的解決方案,但這並沒有幫助...

如何做到這一點?如何生成動態日曆?

如果問題沒有被理解,請讓我知道。

傳遞我這段代碼至少相似

謝謝!

回答

0

聽起來像你想要做的是設置屬性Calendar.SelectedDateCalendar.VisibleDate

我不確定你要去的究竟是什麼,因爲我不知道用戶將選擇你的Jan 1/Jun 1日期或第三個星期日與此相關的控件類型。 。只有一個日曆嗎?如果下面的信息不能幫助你,請多解釋一下。

我會從我的一個應用程序粘貼一些VB代碼,希望它會幫助你。現在你已經張貼的細節這將成爲一個不同的問題

Protected Sub calArrival_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles calArrival.SelectionChanged 
    SetFormDepartureEntry() 

    lblArrivalDate.Text = calArrival.SelectedDate.ToLongDateString 
    calDeparture.SelectedDate = calArrival.SelectedDate 
    calDeparture.VisibleDate = calArrival.SelectedDate 
    dtSelectedArrival = "1/1/2000" 

    'Determine if we need to see 2 months to view all possible departure dates. 
    If (DatePart(DateInterval.Month, calDeparture.SelectedDate) <> _ 
     DatePart(DateInterval.Month, DateAdd(DateInterval.Day, 14, calDeparture.SelectedDate))) Then 
     calDeparture2.Visible = True 
     calDeparture2.SelectedDate = Nothing 
     calDeparture2.VisibleDate = DateAdd(DateInterval.Month, 1, calDeparture.SelectedDate) 
    Else 
     calDeparture2.Visible = False 
    End If 
    End Sub 

確定。你不知道你需要多少日曆,所以你可能想要在代碼中創建它們。我會建議在你的標記中使用Panel控件來包含所有可能的結果日曆。然後,如您之前所建議的那樣,根據需要創建新的Calendar對象並將它們添加到「錨點」面板的Controls集合中。

Calendar objCal = new Calendar(); 
pnlResultsContainer.Controls.Add(objCal); 

就設置選定日期而言,我相信每個日曆只能有一個「選定」日期。但是,您可以通過處理Calendar.DayRender事件來設置呈現樣式,以及是否啓用該日等。也許有人可以幫助我建立一個在C#中動態創建控件的處理程序?我認爲它是這樣的:

objCal.DayRender += AddressOf(DynamicDayRenderHandler()); 

如果這不正確,請更正。

確定在處理程序中設置樣式的正確日期將是針對作爲事件參數的DayRenderEventArgs.Day對象進行編碼的問題。我不隨便知道如何找到你正在尋找的特定日期/時間間隔,但應該可以在下面的文章有一點研究:

How to: Customize Individual Days in a Calendar Web Server Control

DayRenderEventArgs.Day Property

希望這有助於。

+0

感謝您的評論。我已經更新了我的問題 – 2011-04-29 17:08:31

+0

任何解決方案Guys?請幫忙 – 2011-04-29 17:40:56