Я использую элемент управления jQuery DatePicker в приложении ASP.NET MVC.
Я создал элемент управления с именем DateTime.ascx, чтобы каждый раз, когда я вызываю метод Html.TextBoxFor (), передавая ему полеТип DateTime, этот элемент управления вступает в игру, и текстовое поле + средство выбора даты отображается, переопределяя стандартную функциональность, которая создает только текстовое поле.
Это элемент управления:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" %>
<%=Html.TextBox("",
(Model.HasValue ? Model.Value.ToString("MM/dd/yyyy") : DateTime.Today.ToShortDateString()),
new { @class = "UseDatePicker" } )%>
А вотпример вызова:
<%: Html.EditorFor(model => model.Project.IssueDate)%>
Теперь я также включаю на главной странице скрипт под названием DatePickerConfig.js, который, ну, в общем, настраивает DatePicker.Вот оно:
$(document).ready(function () {
$(".UseDatePicker").live('click', function () {
$(this).datepicker('destroy').datepicker({
showOn: "both",
buttonImage: "../../Content/calendar.gif",
buttonImageOnly: true,
changeMonth: true,
changeYear: true
}).focus();
});
});
Теперь моя проблема: при загрузке страницы появляется только текстовое поле для редактирования поля даты и времени.Когда я нажимаю на текстовое поле, календарь появляется, как и ожидалось, и в то же время появляется изображение кнопки.Мне бы хотелось, чтобы изображение кнопки отображалось сразу после загрузки страницы и до того, как пользователь начнет взаимодействовать с элементом управления.
Спасибо.