2012-01-21 3 views
1

Я использую ASP.NET MVC 3 с razor и последней версией элементов управления Telerik MVC extensions.Telerik MVC расширяет выбор даты, не помещая дату в текстовое поле

У меня есть элемент выбора даты на мой взгляд:

<td><label>From:</label></td> 
<td> 
    @(Html.Telerik() 
      .DatePickerFor(x => x.HospitalisedStartDate) 
      .Name("HospitalisedStartDate") 
    ) 
</td> 

Это свойство в моей модели представления:

public DateTime? HospitalisedStartDate { get; set; } 

Когда вид нагрузки, я бы нажать на значок календаря. Календарь всплывает, я бы выбрал дату, а потом ничего не произошло. Календарь исчезает, но дата не установлена ​​в текстовое поле. Почему это должно быть? Если бы я набрал слово «сегодня» в текстовом поле, он будет помещен в сегодняшнюю дату, например «2012/01/21». Что мне здесь не хватает, что мешает ему работать?

Разметка выглядит следующим образом для таблиц стилей и JavaScript:

<link type="text/css" href="/Content/2011.3.1115/telerik.common.min.css" rel="stylesheet"/> 
<link type="text/css" href="/Content/2011.3.1115/telerik.webblue.min.css" rel="stylesheet"/> 
<link type="text/css" href="/Content/Stylesheets/mystylesheet.css" rel="stylesheet"/> 

<script src="/Scripts/jquery-1.7.1.min.js"></script> 
<script type="text/javascript" src="/Scripts/2011.3.1115/telerik.common.min.js"></script> 
<script type="text/javascript" src="/Scripts/2011.3.1115/telerik.tabstrip.min.js"></script> 
<script type="text/javascript" src="/Scripts/2011.3.1115/telerik.calendar.min.js"></script> 
<script type="text/javascript" src="/Scripts/2011.3.1115/telerik.datepicker.min.js"></script> 
<script type="text/javascript" src="/Scripts/2011.3.1115/telerik.treeview.min.js"></script> 
+0

Вы проверили страницу с Firebug (или то же самое в Chrome)? Есть ли ошибка javascript в консоли или нет? –

+0

Вы используете Telerik ScriptManager? – Nick

ответ

2

Проблема с выбором даты при использовании jQuery 1.7 и выше. Я изменил его на jQuery 1.6.4, и теперь он работает. Знает ли кто-нибудь, почему это так?

Это сейчас, на мой взгляд:

<script src="/Scripts/jquery-1.6.4.min.js"></script> 
0

У меня эта же проблема. Я использую MVC3 (не-Razor), Telerik MVC Controls и jQuery. Я только недавно начал видеть эту проблему. К сожалению, я не могу изолировать то, что я мог бы изменить, чтобы исправить это поведение. Недавно мне пришлось добавить диспетчер сценариев ASP.NET, чтобы импортировать ресурсы сценариев из сторонней сборки, а также некоторый собственный код, чтобы помочь в создании избыточной разметки.

В ответ на вопрос Ника, то Telerik управляет автомагически вставить

<%: Html.Telerik().ScriptRegistrar() ... %> 

линии в разметке, но это было там с самого начала моего проекта - когда DatePicker работал, как ожидалось.

Я наблюдаю это поведение как в Firefox, так и в IE. В отчаянии я полностью отключил свой файл:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 
<!DOCTYPE html> 
<html> 
    <head runat="server"> 
    <title>Test</title> 
    <%: Html.Telerik().StyleSheetRegistrar().DefaultGroup(group => group.Add("telerik.common.css").Add("telerik.webblue.css").Combined(true).Compress(true)) %> 
    </head> 
    <body> 
    <form id="frmMain" method="post" runat="server"> 
     <% Html.Telerik().DatePicker() 
      .Name("dtTest") 
      .HtmlAttributes(new { id = "dtTest_wrapper" }) 
      .Min(DateTime.Today.Subtract(new TimeSpan(3835, 0, 0, 0, 0))) 
      .Max(DateTime.Today.Add(new TimeSpan(24, 0, 0))) 
      .ShowButton(true) 
      .OpenOnFocus(true) 
      .Render(); %> 
    </form> 
    <%: Html.Telerik().ScriptRegistrar().DefaultGroup(group => group.Combined(false).Compress(false)) %> 
    </body> 
</html> 

Это все еще не работает должным образом. Это главная страница (всегда была), но на какой-либо из дочерних страниц ничего нет, но (никогда не было).

1

Вы обновили jQuery?

После тщательного изучения того, что я мог изменить, я вспомнил, что мне нужно было протестировать новую версию jQuery. Я заменил файл jquery-1.6.4.min.js на jquery-1.7.1.js примерно неделю назад. Восстановление версии 1.6.4 устранило мою проблему. Моя страница работала точно так, как она была разработана для работы.

+0

Я также использую последнюю версию jQuery.Как вы думаете, я должен попробовать и более старую версию, чтобы увидеть, работает ли она? Если я буду завтра вводить, то он отображает дату в текстовом поле. –

1

JQuery 1.6.4 работает очень хорошо для меня. Однако я попробовал jquery-1.5.1.min.js, а также попытался использовать 1.7.1. и это не сработало. Значок не показывался.