Как повторно выбрать дату из календаря после неудачной проверки? - PullRequest
0 голосов
/ 12 августа 2010

У меня есть текстовое поле, кнопка с изображением и элемент управления календаря внутри пользовательского элемента управления, чтобы выбрать дату из календаря и установить выбранную дату внутри текстового поля.Все работает хорошо, кроме проверки.Я пытался проверить правильность значения текстового поля.Если это недопустимая дата, я хочу повторно выбрать дату из календаря, но похоже, что если проверка не удалась, я не смог бы повторно выбрать дату, если я не указал правильную дату в текстовом поле.По сути, проверка требует, чтобы я сначала исправил недопустимую дату, прежде чем пытаться выбрать допустимую дату, но я хочу выбрать заново, если проверка не удалась.

<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;        
        }

Ответы [ 2 ]

0 голосов
/ 12 августа 2010

Это решено.Просто установив другое имя группы проверки, все работает нормально.

0 голосов
/ 12 августа 2010

На самом деле я понял это.Добавляя группу проверки только в текстовое поле и необходимые валидаторы, а не в элемент управления календаря.Это позволит мне повторно выбрать элемент управления календаря, даже если значение текстового поля недопустимо.

...