2010-07-13 74 views
3

我有以下日期选择器的init代码,但显示默认的“选择日期”链接,而不是图像。这是在一个MVC项目中,但这应该不会影响我所知的任何事情。jQuery UI DatePicker图像不显示

$(function() { 
     $(".date-picker").datePicker({ 
      showOn: 'both', 
      dateFormat: 'dd-mm-yy', 
      changeMonth: true, 
      changeYear: true, 
      showOn: 'button', 
      buttonImage: '<%= Url.Content("~/Content/images/date_picker2.gif") %>', 
    }); 

渲染buttonImage选项如下:

buttonImage: '/Content/images/date_picker2.gif', 

像这样的img标签正确呈现的图像:

<img src='<%= Url.Content("~/Content/images/date_picker2.gif") %>' /> 
+0

其日期选择器是您使用? jQuery UI的一个是'.datepicker()'...所以你的代码现在甚至不应该工作,确保你发布你的实际代码。 – 2010-07-13 10:36:37

+0

有多奇怪。我从某处获取datePicker功能。 – ProfK 2010-07-13 10:58:33

+0

啊哈,我还有其他datepicker脚本的引用。我轻率地认为从我的项目中删除脚本就足够了,但显然他们仍然缓存在客户端。 – ProfK 2010-07-13 11:26:35

回答

3

ProfK - 我使用共享EditorTemplate内的日期选择器和我的代码看起来与上面非常相似。这里就是我的下视图 - > Shared-> EditorTemplates-> DateTime.ascx:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<DateTime?>" %> 

<%string name = ViewData.TemplateInfo.HtmlFieldPrefix;%> 
<%string id = name.Replace(".", "_");%> 

<div class="editor-label"> 
    <%= Html.LabelFor(model => model) %> 
</div> 
<div class="editor-field"> 
    <%= Html.TextBox("", (Model.HasValue ? Model.Value.ToString("dd-MM-yyyy") : string.Empty), new { @class = "date" }) %> 
    <%= Html.ValidationMessageFor(model => model)%> 
</div>  

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#<%=id%>").datepicker({ 
      dateFormat: 'dd-mm-yy', 
      changeMonth: true, 
      changeYear: true, 
      showOn: 'button', 
      buttonImage: '<%=Url.Content("~/Content/images/calendar.gif") %>' 
     }); 
    }); 
</script> 

[编辑] - 使用鉴于:

<%= Html.EditorFor(m => m.StartDate) %> 

试一试,看它是否帮助了任何...

jim

+0

你有'showOn'定义两次;) – 2010-07-13 10:38:38

+0

哎呀,所以我有! - 修正了 – 2010-07-13 10:39:06

+0

感谢@jim,你的EditorTemplate工作得很好,但是昨天很快,jQuery部分没有,所以被委托给主页面。我今天晚些时候再检查一次。 – ProfK 2010-07-14 07:14:21

2

使用firefox并安装firebug扩展。并监视网络选项卡是否有任何错误。

+0

这确实指出我以后有相同的图像的另一个错误,谢谢。 – ProfK 2010-07-14 07:14:52

1

或者,如果有一个文本框,你可以简单地这样做:

$('#datepickerImage').click(function() { 
    $('#datepickerTextBox').datepicker('show'); 
});