4

非常に単純なドロップダウンボックスを作成しました。

<asp:DropDownList ID="MonthDropDown" runat="server" AutoPostBack="True">
</asp:DropDownList>

コードビハインド:

MonthDropDown.DataSource = Enumerable.Range(1, 12);
MonthDropDown.SelectedIndex = DateTime.Now.Month;
MonthDropDown.DataBind();

MonthDropDown(私のドロップダウンボックス)に月の数値の代わりに月の名前を表示させる方法はありますか?私はそれが次のようなものかもしれないと思っています

DateTimeFormatInfo.CurrentInfo.GetMonthName(MonthDropDown.SelectedIndex)?
4

2 に答える 2

3

これはどういう意味ですか?

for (int n = 1; n <= 12; ++n)
    MonthDropDown.Items.Add(n, DateTimeFormatInfo.CurrentInfo.GetMonthName(n));

MonthDropDown.SelectedIndex = DateTime.Now.Month - 1; // note -1

MonthDropDown.SelectedValueこれは1ベースの値(1 = 1月)になりますが、0ベースの値(0 = 1月)になることに注意してくださいMonthDropDown.SelectedIndex

于 2012-12-19T19:38:11.893 に答える
3

CultureInfoもちろんこれは文化固有なので、クラスで探してください。

string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(monthIndex);

リストボックスの値として月の名前を設定できます。

MonthDropDown.DataSource = Enumerable.Range(1, 12)
    .Select(monthIndex => 
        CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(monthIndex))
    .ToArray();

選択した値をインデックスにしたい場合は、キー/値を使用することもできます。

MonthDropDown.DataSource = Enumerable.Range(1, 12)
    .Select(monthIndex=> 
        new ListItem(
            CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(monthIndex), 
            monthIndex.ToString()))
    .ToArray();
于 2012-12-19T19:39:17.030 に答える