2011-04-29 82 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