Кнопка asp отключает смену месяца в календаре asp

У меня есть календарь asp, который работает нормально, но когда я добавляю кнопку asp для отправки значений текстового поля в форме, календарь показывает только текущий месяц, кнопки предыдущего и следующего месяца не работают.

<form id="form1" runat="server">
    <div>
        <asp:Calendar ID="cal2" runat="server" Width="50%" DayField="Date" OnDayRender="Calendar1_DayRender"
            BackColor="Orange" NextMonthText="Next" PrevMonthText="Prev" OnVisibleMonthChanged="Calendar1_VisibleMonthChanged" >
            <DayStyle CssClass="days" VerticalAlign="Top" Font-Name="Arial" Width="100px" Height="100px" BackColor="lightYellow"  />
             <TodayDayStyle BackColor="Orange"  />
            <OtherMonthDayStyle BackColor="LightGray" ForeColor="DarkGray"/>
        </asp:Calendar>
        </div>
    <asp:Button ID="submit" CssClass="login" runat="server" Text="Submit" OnClick="Submit_click" /> 
</form>

У меня есть текстовые поля, которые я отправил обратно на сервер, и для этого мне нужно использовать кнопку asp, как я могу предотвратить отключение функций календаря? заранее спасибо

0
0
132
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема в названии (ID) вашей кнопки. Компонент Calender использует внутренний (javascript) вызов form.submit (), введение кнопки с этим идентификатором прерывает этот вызов.

Пример исправления:

<asp:Button ID="MySubmit" CssClass="login" runat="server" Text="Submit" OnClick="Submit_click" />

(This is not unique to the Calendar component, in general you should not name your buttons "submit" in ASP.NET unless you know exactly what you are doing)

В связи с этим, иногда лучше всего ставить перед идентификаторами ASP-элементов их тип. btnSubmit, ddlUser, txtFirstName и др.

Tyler Roper 10.08.2018 17:21

Истинно (частично для суффиксов), хотя обычно это связано с конфликтом идентификатора ASP с именами в код позади, а не с битами javascript фреймворка.

Paul-Jan 10.08.2018 17:31

Это определенно более полезное соглашение о коде программной части, поскольку дальше по строке больше не нужно угадывать типы управления для неоднозначных идентификаторов. Но именно этот вопрос является очень хорошим примером хороших привычек, имеющих непредвиденные положительные последствия :) Кстати, хороший ответ!

Tyler Roper 10.08.2018 17:33

Другие вопросы по теме