私は mvc3 が初めてで、ビュー エンジンはカミソリです。ビューで日付ピッカーを取得する方法を教えてください。すべてのビューを共通に表示するには、日付ピッカー関数をどこに書く必要がありますか。私のすべてのビューでどのようにそれを呼び出すことができますか。
2 に答える
datepickerとして表示する必要があるすべての入力フィールドにいくつかの共通クラスを追加できます。
@Html.TextBoxFor(x => x.SomeDate, new { @class = "date" })
次に、別のjavascriptファイルで:
$(function() {
$('.date').datepicker();
});
次に、この.jsファイルをレイアウトに含めて、日付クラスを持つ各ページと各入力フィールドに対して実行されるようにするだけです。
- _Layout.cshtml に次の行を追加します
//CSS
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.17/themes/redmond/jquery-ui.css" rel="Stylesheet" type="text/css" />
//スクリプト
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
Shared フォルダーに移動し、そこに EditorTemplates という名前のフォルダーを作成します。
EditorTemplates フォルダー内に、DateTime という部分ビューを作成します。
次のコードを DateTime 部分ビューに追加します
@モデル System.DateTime ? @Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "pickDate" })
<script type="text/javascript"> $(document).ready(function () { $('.pickDate').datepicker({ changeMonth: true, changeYear: true }); }); </script>
これですべての設定が完了し、DateTime タイプのフィールドがあるすべてのビューで、そのフィールド内をクリックしたり、アイコンなどをクリックしてプロパティを変更したりすると、jqueryUI 日付ピッカーが表示されます。
たとえば、ビューはモデルから作成されたものと同じです。何も追加する必要はありません。
<div class="editor-label">
@Html.LabelFor(model => model.DateOfBirth)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.DateOfBirth)
@Html.ValidationMessageFor(model => model.DateOfBirth)
</div>
アップデート
おそらく、ある種のスクリプトの衝突があります。追加してみる
@if(false)
{
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
}
あなたのビューの上に。