Telerik MVC扩展日期选择器没有将日期放在文本框中

时间:2012-01-21 10:26:02

标签: jquery asp.net-mvc asp.net-mvc-3 telerik telerik-mvc

我正在使用ASP.NET MVC 3 razor和最新版本的Telerik MVC extensions控件。

我的观点中有一个日期选择器:

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

4 个答案:

答案 0 :(得分:2)

使用jQuery 1.7及更高版本时,日期选择器似乎存在问题。我将其更改为jQuery 1.6.4,现在可以使用了。有没有人知道为什么会这样?

现在我认为:

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

答案 1 :(得分:1)

你有更新jQuery吗?

在仔细考虑了我可能已经改变的内容之后,我记得我需要测试更新版本的jQuery。大约一周前,我用jquery-1.7.1.js替换了文件jquery-1.6.4.min.js。恢复1.6.4版本已经解决了我的问题。我的页面完全按照设计的方式工作。

答案 2 :(得分:1)

jQuery 1.6.4对我来说效果很好。但是,我尝试了jquery-1.5.1.min.js并尝试了1.7.1。它不起作用。图标没有显示出来。

答案 3 :(得分:0)

我遇到同样的问题。我正在使用MVC3(非Razor),Telerik MVC控件和jQuery。我最近才开始看到这个问题。不幸的是,我似乎无法隔离我可能已经改变的东西以引发这种行为。我最近不得不添加一个ASP.NET脚本管理器来从第三方程序集导入脚本资源,以及一些自定义代码来帮助生成冗余标记。

针对Nick的问题,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>

这仍然没有按照预期的方式运作。这是一个母版页(一直都是),但是在任何子页面中都没有定义,但是(从未有过)。