Я пытаюсь создать свой собственный выбор даты, используя код из нескольких источников.ASP User Control Issue
Почему календарь не будет скрыт, если он будет видимым?
myDate.ascx
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="myDate.ascx.vb"
Inherits="Website.myDate" %>
<asp:TextBox ID="dateText" runat="server" > </asp:TextBox>
<asp:Button ID="dateBtn" runat="server" UseSubmitBehavior="false" Text="x" />
<asp:Calendar ID="dateCal" runat="server" ></asp:Calendar>
myDate.ascx.vb
Partial Public Class myDate
Inherits System.Web.UI.UserControl
Protected Sub dateCal_SelectionChanged(ByVal sender As Object, ByVal e As EventArgs) Handles dateCal.SelectionChanged
dateText.Text = dateCal.SelectedDate ' Update text box'
dateCal.Visible = False ' Hide calendar'
End Sub
Protected Sub dateCal_VisibleMonthChanged(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MonthChangedEventArgs) Handles dateCal.VisibleMonthChanged
dateCal.Visible = True ' For some reason, changing the month hides the calendar (so show it)'
End Sub
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
dateCal.Visible = False ' Hide calendar on load'
End Sub
Protected Sub dateBtn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles dateBtn.Click
dateCal.Visible = Not dateCal.Visible ' On button press, toggle visibility'
End Sub
End Class
Итак, postback - это страница, на самом деле освежающая с новым внешним видом. Это верно? Как я могу закодировать свой элемент управления, чтобы не обновлять страницу при каждом взаимодействии с календарем, например, большинство элементов выбора даты (например: www.delta.com)? – Steven
Сделайте это на стороне клиента, используя JQuery - http://stackoverflow.com/questions/94729/need-a-free-datepicker-for-aspx –
Для этого вам нужно использовать javascript datapicker вместо серверной. Попробуйте использовать http://docs.jquery.com/UI/API/1.8/Datepicker. Эта страница содержит пример и код, необходимые для его создания. –