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'); 
});