У меня есть текстовое поле, кнопка с изображением и элемент управления календаря внутри пользовательского элемента управления, чтобы выбрать дату из календаря и установить выбранную дату внутри текстового поля.Все работает хорошо, кроме проверки.Я пытался проверить правильность значения текстового поля.Если это недопустимая дата, я хочу повторно выбрать дату из календаря, но похоже, что если проверка не удалась, я не смог бы повторно выбрать дату, если я не указал правильную дату в текстовом поле.По сути, проверка требует, чтобы я сначала исправил недопустимую дату, прежде чем пытаться выбрать допустимую дату, но я хочу выбрать заново, если проверка не удалась.
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div style="width: 400px">
<asp:TextBox ID="TextBox1" runat="server" Width="100px"></asp:TextBox>
<asp:ImageButton ID="ImgButton1" runat="server" ImageUrl="~/Images/cal.gif" OnClick="ImgButton1_Click" />
<asp:Calendar ID="Calendar1" runat="server" DayNameFormat="FirstLetter" Width="90px" Font-Names="Arial" Font-Size="11px" NextMonthText="»" PrevMonthText="«" SelectionMode="DayWeekMonth" SelectMonthText="»" SelectWeekText="›" CssClass="myCalendar" BorderStyle="None" CellPadding="1" OnSelectionChanged="Calendar1_SelectionChanged" Visible="False">
<OtherMonthDayStyle ForeColor="Gray" />
<DayStyle CssClass="myCalendarDay" />
<SelectedDayStyle Font-Bold="True" Font-Size="12px" />
<SelectorStyle CssClass="myCalendarSelector" />
<NextPrevStyle CssClass="myCalendarNextPrev" />
<TitleStyle CssClass="myCalendarTitle" />
</asp:Calendar>
<asp:CustomValidator ID="cusValidator1" runat="server" OnServerValidate="Customer_Validation" />
<asp:Label ID="lblError" Text="invalid input" Visible="false" runat="server" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{ // Set Date Time value into the TextBox control
TextBox1.Text = Calendar1.SelectedDate.ToString("MM/dd/yyyy");
// Hide the Calendar control after selecting the date
Calendar1.Visible = false;
}
protected void ImgButton1_Click(object sender, EventArgs e)
{
Calendar1.Visible = !Calendar1.Visible;
}