2013-04-17 39 views
1

我正在嘗試使datepicker只顯示年份和月份。只有月份和年份的ASP .NET MVC4 Datepicker

我在不同的地方看到了這個問題,但是我測試過的所有解決方案都不起作用。

我按照這個例子:http://jsfiddle.net/bopperben/DBpJe/

這裏是我的.cshtml文件:

@using Site.Models 
@{ 
    ViewBag.Title = "Rapports"; 
} 

<script type="text/javascript"> 
    $(function() { 
    $('.date-picker').datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    showButtonPanel: true, 
    dateFormat: 'MM yy', 
    onClose: function(dateText, inst) { 
     var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val(); 
     var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val(); 
     $(this).datepicker('setDate', new Date(year, month, 1)); 
    } 
    }); 
    }); 
</script> 
<style type="text/css"> 
    .ui-datepicker-calendar { 
    display: none; 
    } 
</style> 

<h2>Rapports</h2> 

<div> 

    @using (Html.BeginForm()) { 
     <input name="startDate" id="startDate" class="date-picker" /> 
     <input type="submit" value="Rechercher" /> 
    } 

</div> 

但在我的頁面只有一個文本框,並沒有彈出,當我點擊它。 我不知道我在做什麼錯。

+0

,能得到任何JavaScript錯誤? – Saanch

+0

不,我沒有任何錯誤。 –

+0

您複製的代碼有語法錯誤。你能確認它的正確嗎? – Saanch

回答

5

您是從ASP.NET MVC4互聯網模板開始的嗎?

我已經試過你的代碼,並得到它在兩個細節上工作。

我添加腳本標記的部分腳本(這將確保它呈現jQuery是加載之後)

@section scripts 
{ 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('.date-picker').datepicker({ 
       changeMonth: true, 
       changeYear: true, 
       showButtonPanel: true, 
       dateFormat: 'MM yy', 
       onClose: function(dateText, inst) { 
        var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val(); 
        var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val(); 
        $(this).datepicker('setDate', new Date(year, month, 1)); 
       } 
      }); 
     }); 
    </script> 
} 

在_Layout.cshtml我已經添加了jquerui包(腳本和樣式)(加載頁面jQueryUI的)

//In head tag 
@Styles.Render("~/Content/css") 
@Styles.Render("~/Content/themes/base/css") 

//After closing footer tag 

@Scripts.Render("~/bundles/jquery") 
@Scripts.Render("~/bundles/jqueryui") 

@RenderSection("scripts", required: false) 

screenshot

+1

它工作,唯一缺少的東西是 '@ Scripts.Render(「〜/ bundles/jqueryui」)'_Layout.cshtml 謝謝! –

+0

我還有一個問題,你知道什麼文件,我必須修改,只有在今年之前幾年(所以2013年後沒有)? –

+0

問題解決了,只需要添加這行到我的腳本: 'yearRange:「-20:+0」' –