2017-03-31 84 views
0

我有一個ASP.NET MVC的Web應用程序,並嘗試使用Bootstrap 3 Datepicker我的「月/年」現場像在演示這裏: https://eonasdan.github.io/bootstrap-datetimepicker/#min-view-mode引導3個月日期選擇器僅查看

在該演示中,只有它允許用戶選擇「年」和「月」。不是「天」。我想在我的應用程序中使用相同的功能。但是,在我的應用程序中,第一次點擊的效果相同,但在成功點擊後,它會顯示「天」選擇視圖。將viewMode設置爲「年」不能解決問題。

我的模型是如下:

public class FilterViewModel 
{ 
    public DateTime? StartMonthYear { get; set; } 
    ... 

我的觀點是如下:

<div class="col-sm-3"> 
    @Html.TextBoxFor(model => model.StartMonthYear, new { @class = "month-picker" }) 
    ... 
<script type="text/javascript"> 
    $(function() { 
     $('.month-picker').datetimepicker({ 
      viewMode: 'months', 
      format: 'MM/YYYY', 
      useCurrent: false 
     }); 
    }); 
</script> 

回答

0

我發現周圍工作得很好工作:

$(function() { 
    $('.month-picker').datetimepicker({ 
     viewMode: 'months', 
     format: 'MM/YYYY', 
     useCurrent: false 
    }); 

    $('.month-picker').on("dp.show", function (e) { 
     $(e.target).data("DateTimePicker").viewMode("months"); 
    }) 
}); 

這是基於答覆發現here

1

的問題是,僅viewMode設定的初始視圖。但是,似乎這個特定的庫沒有提供任何方式來實際限制哪些視圖可用。

有一個我個人使用的alternate libary,它會給你的能力。它實際上是一種直接替代品,所以你不需要改變太多來切換。然而,重要的是,它提供了可以利用minView/maxView選項:

$(function() { 
    $('.month-picker').datetimepicker({ 
     startView: 'month', 
     minView: 'month', 
     format: 'mm/yyyy' 
    }); 
}); 

正如你可以看到有一些細微的差別:

  1. viewMode變得startView。視圖名稱也是單數monthmonths

  2. 格式化字符串更類似於C#格式,因此您應該使用小寫mmyyyy

  3. 此庫的默認設置是使用當前的日期/時間,因此不需要單獨的useCurrent選項。如果你想指定一個不同的開始日期/時間,你會使用initialDate

+0

在他們的演示(https://eonasdan.github.io/bootstrap-datetimepicker/#min-view-mode)中,它不僅適用於初始視圖,而且適用於成功。感謝您提供替代庫。如果一切都失敗了,我可能會嘗試。 – corix010

+0

當前的庫被選中,因爲它有這個漂亮的時間選擇器,我也在應用程序的其他DateTime字段中使用。所以我對你建議的替代日期選擇器猶豫不決。 – corix010

+0

對我而言,我猜。我其實更喜歡其他圖書館的時間選擇器。 –

0

這是一個庫中的bug並解決。我面臨同樣的問題,並通過簡單地下載最新版本解決。