Lightning Blog
Blazor記事イメージ画像

【Blazor】 カレンダー(DatePicker)から値を取得する

更新日:2024/06/25
この記事では、Blazorで<input type="date">を使って、カレンダー(DatePicker)から値を取得する方法について解説します。

    目次

  • サンプルコード
  • ライブラリを使うのもあり
  • まとめ

サンプルコード

セクション画像

<input type="date">を使うと、カレンダーから日付を取得することができます(Internet Explorerなど一部のブラウザを除く)。 取得した日付は@bindを介して、値を取得することができます。

以下サンプルコードになります。


@page "/"

<input type="date" min="@_start" max="@_end" @bind="DateTime">

@if (_message != null)
{
    <p>@_message</p>
}

@code{
    /// <summary>
    /// 入力可能日付(~から)
    /// </summary>
    private readonly string _start = DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd");

    /// <summary>
    /// 入力可能日付(~まで)
    /// </summary>
    private readonly string _end = DateTime.Now.ToString("yyyy-MM-dd");

    /// <summary>
    /// 選択されている日付
    /// </summary>
    private DateTime _dateTime = DateTime.Now;

    /// <summary>
    /// メッセージ
    /// </summary>
    private string _message;

    private DateTime DateTime
    {
        get => _dateTime;
        set
        {
            if (_dateTime != value)
            {
                _dateTime = value;
                _message = $"日付が {_dateTime:yyyy-MM-dd} に変更されました。";
            }
        }
    }
}

inputの属性minmaxyyyy-MM-ddにフォーマットした文字列を指定することで、 日付の範囲の最小と最大の設定することができます。今回の例では、1か月前から本日までの範囲で指定しています。

@bindDateTimeプロパティを設定することで、 カレンダーから取得した値を受け取る際にsetが呼ばれ、_dateTimeに値を格納することができます。 またその際に、_message_dateTimeにどの値が格納されたのかメッセージを格納しています。

動作確認してみると、以下のようになります。

動作確認

カレンダーで日付を変更する毎に、メッセージが更新され、_dateTimeに値が格納されているのを確認できます。


ライブラリを使うのもあり

セクション画像

カレンダーをどのブラウザでも同じデザインで表示したい場合は、 Radzenなどのライブラリのカレンダー(DatePicker)を利用する手段もあります。

※Radzenはテーマによりますが、基本的に無料なのでおすすめです。

RadzenのDatePickerのドキュメントはこちら

Radzen DatePicker

Blazorで利用できるライブラリは以下の記事にまとめていますので、 興味があれば確認してみてください。

カード画像
無料・オープンソースのUIフレームワーク

この記事では、Blazorアプリケーションの開発を強化するための複数のUIライブラリを紹介しています。これには、Radzen、Blazorise、Blazored、MatBlazor、MudBlazor、Microsoft Fluent UI Blazor Components、Ant Design Blazor、そしてBlazorStrapが含まれます。各ライブラリは、Blazorアプリケーションに独自のデザインと機能性を提供し、開発プロセスを効率化します。これらのライブラリを活用することで、Blazor開発がより簡単かつ効果的になります。

更新日:2023/09/10


まとめ

セクション画像

今回は、<input type="date">を使って、日付を取得する方法について解説しました。 日付の入力項目はよく使う項目だと思いますので、是非使ってみてください。


ブログ内の記事で書かれているサンプルコードは、GitHubから確認する事ができます。 是非参考にしてみてください。

この本では、Blazorの基本から高度なテクニックまで、実際のプロジェクトに役立つ知識を網羅しています。 初心者から経験者まで、Blazorを扱うすべての開発者にとっての必読書です。 この記事の執筆者も参考にした「Blazor入門」で、あなたのBlazorスキルを飛躍的に向上させませんか?

合わせて読みたい

カード画像
AWS S3にアクセスする方法

BlazorアプリケーションからAWS S3にアクセスする方法を解説。必要なライブラリのインストール、アクセスキーやシークレットキーの設定、サービスクラスの実装手順を詳細に説明します。

更新日:2024/05/21

カード画像
タイマーを使ったコンポーネント

Blazorの記事では、System.Timers.Timerクラスを使用して、1秒ごとに色が変わるカラーボックスを作成する方法を解説します。このタイマーは、定期的なイベント処理に有用で、リアルタイムのデータ更新やバックグラウンド処理に適しています。Blazorアプリでタイマー機能を実装したい場合に役立つ内容です。

更新日:2024/06/05

An error has occurred. This application may no longer respond until reloaded. Reload 🗙