modalpopup内的日历不会更新

时间:2014-06-20 05:51:54

标签: asp.net vb.net calendar modalpopupextender

我在modalpopup中有一个日历。

我的目标是:

  1. 突出显示所选日期
  2. 在列表中添加这些日期
  3. 在gridview中显示这些日期
  4. 代码正在做目标2和3就好了。但是,每当我点击它们时,我选择的日期都不会突出显示。 但是当我关闭弹出窗口并再次打开时,现在突出显示之前选择的日期。

    我尝试插入更新面板,但它仍无法正常工作。你知道如何解决这个问题吗?

    提前感谢。

    ASPX代码:

     <asp:Panel ID="Panel2" runat="server">
     <asp:UpdatePanel ID="UP_Calendar" runat="server" UpdateMode="Conditional"   ChildrenAsTriggers="False" RenderMode="Inline">
      <ContentTemplate>
    
       <asp:Calendar ID="Calendar1" runat="server" BackColor="White" 
                        BorderColor="Black" DayNameFormat="Shortest" Font-Names="Times New Roman" 
                        Font-Size="10pt" ForeColor="Black" Height="220px" NextPrevFormat="FullMonth" 
                        TitleFormat="Month" Width="412px" OnDayRender = "Calendar13_DayRender" OnSelectionChanged="Calendar13_SelectionChanged" >
    
                        <SelectedDayStyle BackColor="#CC3333" ForeColor="White" />
                        <SelectorStyle BackColor="#CCCCCC" Font-Bold="True" Font-Names="Verdana" 
                            Font-Size="8pt" ForeColor="#333333" Width="1%" />                      
                        <TodayDayStyle BackColor="#CCCC99" />
                        <OtherMonthDayStyle ForeColor="#999999" />
                        <DayStyle Width="14%" />
                        <NextPrevStyle Font-Size="8pt" ForeColor="White" />
                        <DayHeaderStyle BackColor="#CCCCCC" Font-Bold="True" Font-Size="7pt" 
                            ForeColor="#333333" Height="10pt" />
                        <TitleStyle BackColor="Black" Font-Bold="True" Font-Size="13pt" 
                            ForeColor="White" Height="14pt" />
                    </asp:Calendar>
                    </ContentTemplate>
        </asp:UpdatePanel>
                            </asp:Panel>
    

    这是我的日期渲染代码:

    Protected Sub Calendar1_DayRender(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DayRenderEventArgs) Handles Calendar1.DayRender
    
        If e.Day.IsSelected = True Then
            list_Days.Add(e.Day.[Date])
            e.Cell.BackColor = Color.Orange
        End If
    
        Session("SelectedDates") = list_Days
    

    SelectionChanged事件代码:

        Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As EventArgs)
        If Session("SelectedDates") IsNot Nothing Then
            Dim newList As List(Of DateTime) = DirectCast(Session("SelectedDates"), List(Of DateTime))
            For Each dt As DateTime In newList
                Calendar1.SelectedDates.Add(dt)
            Next
            list_Days.Clear()
        End If
    End Sub
    

1 个答案:

答案 0 :(得分:0)

这有点傻,但经过一些试验,我意识到错误是在更新面板条件下。我只是将它设置为“UpdateMode:”始终“”并且它有效。