Как установить свойство «VisibleDate» элемента управления asp: Calendar? - PullRequest
0 голосов
/ 31 января 2011

Я занимаюсь разработкой веб-сайта ASP.NET, на котором я использовал CalendarExtender набора инструментов управления AJAX для выбора даты в asp: TextBox. Я хочу установить свойство VisibleDate элемента управления asp: Calendar на основе выбранной даты из элемента управления CalendarExtender. Я прошу вас помочь мне достичь этой функциональности. Или есть какой-нибудь способ отправить обратно страницу при выборе даты из элемента управления CalendarExtender, чтобы я мог обработать событие TextChanged в коде и установить свойство VisibleDate в этом обработчике события? Спасибо

1 Ответ

2 голосов
/ 31 января 2011

Я бы использовал асинхронную обратную передачу для события TextChanged, чтобы установить свойство VisibleDate:

aspx:

<asp:UpdatePanel ID="UdpDatePanel" runat="server" UpdateMode="conditional" ChildrenAsTriggers="false"  >
   <ContentTemplate>
      <asp:Calendar ID="Calendar1"  runat="server" />
      <asp:TextBox ID="TxtDate" AutoPostBack="true" runat="server" />
      <asp:CalendarExtender ID="CalendarExtender1" TargetControlID="TxtDate" runat="server" />
   </ContentTemplate> 
   <Triggers>
        <asp:AsyncPostBackTrigger ControlID="TxtDate" EventName="TextChanged" />
   </Triggers>
</asp:UpdatePanel> 

codebehind:

Public Partial Class CalendarDemo
    Inherits System.Web.UI.Page

    Private Sub TxtDate_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtDate.TextChanged
        Dim d As Date
        If Date.TryParse(Me.TxtDate.Text, d) Then
            Me.Calendar1.VisibleDate = d
        End If
    End Sub

End Class

На этом путион сохраняет производительность, и вам не придется возиться с javascript, который может измениться в будущих выпусках инструментария asp.net-ajax.

...