2

年と月の両方を表示するドロップダウンリストを生成しようとして立ち往生しています。

ドロップダウンには、以下のように1年間表示する必要があります。

  • 「2012年11月」
  • 「2012年10月」
  • 「2012年9月」
  • 「2012年8月」
  • 「2012年7月」
  • 「2012年6月」
  • 「2012年5月」
  • 「2012年4月」
  • 「2012年3月」
  • 「2012年2月」
  • 「2012年1月」
  • 「Des2011」

それは1年の月でなければなりません。

私はこのJavaScriptを使用してドロップダウンリストに送信しています:

$('.dropdownMonthYear').change(function ()
        {
            var values = $('.dropdownMonthYear').val().split(",");
            var month = values[0];
            var year = values[1];
            window.location = '/Garage/Top10Cars.aspx?month=' + month + '&year=' + year;
        });

コードビハインド:

month = Convert.ToInt32(Request.QueryString["month"]);
            year = Convert.ToInt32(Request.QueryString["year"]);

誰もがこれを行う方法を知っていますか?

4

1 に答える 1

4

これは、以下を使用する1つの方法Linqです。

var source = Enumerable.Range(0, 12)
    .Select(i =>  new ListItem(DateTime.Today.AddMonths(-1 * i).ToString("MMM yyyy")));
DdlYearMonth.DataSource = source;
DdlYearMonth.DataBind();

これRangeはforループに似ています。Select私はから作成しListItemsていますDateTimes(今日から、各ループで1か月前に戻ります)。ToString日時を指定された形式の文字列に変換するフォーマット文字列を取ります。

標準の日付と時刻の形式の文字列

ListItemのValueプロパティも月番号(1月の場合はfe 1)に設定する場合:

var source = Enumerable.Range(0, 12)
   .Select(i => DateTime.Today.AddMonths(-1 * i))
   .Select(d => new { Text = d.ToString("MMM yyyy"), Value = d.Month.ToString() });
DdlYearMonth.DataTextField = "Text";
DdlYearMonth.DataValueField = "Value";
DdlYearMonth.DataSource = source;
DdlYearMonth.DataBind();
于 2012-11-09T14:57:56.873 に答える