Что лучший способ состоит в том, чтобы кодировать выпадающий список Месяца и года для ASP.NET?

Попробуйте, это сработает ...

            $config['protocol'] = 'smtp';

            $config['smtp_host'] = 'mail.domain.com';

            $config['smtp_port'] = '587';

            $config['smtp_timeout'] = '7';

            $config['smtp_user'] = 'domain email here';

            $config['smtp_pass'] = 'email password here';

            $config['charset'] = 'utf-8';

            $config['newline'] = "\r\n";

            $config['mailtype'] = 'html'; // or html

            $config['validation'] = TRUE; // bool whether to validate email or not      

            $this->email->initialize($config);
            $this->email->from('email here', 'Email Name');
            $this->email->to('email to');

            $this->email->subject('subject here');



            $this->email->message('message here');


            $this->email->send();
12
задан Bryan Rehbein 1 May 2009 в 18:12
поделиться

4 ответа

Вы можете использовать это, чтобы получить список всех названий месяцев и просмотреть его.

CultureInfo.CurrentCulture.DateTimeFormat.MonthNames

Вы можете используйте это следующим образом ... используя индекс месяца в качестве значения для вашего раскрывающегося списка

var months = CultureInfo.CurrentCulture.DateTimeFormat.MonthNames;
for (int i = 0; i < months.Length; i++)
{
     ddl.Items.Add(new ListItem(months[i], i.ToString()));
}
30
ответ дан 2 December 2019 в 03:29
поделиться

Расширение ответа @Jesse Brown ...

С помощью директивы , использующей System.Globalization , у меня есть следующий код:

for (int x = 0; x < 12; x++)
{
    cboMonth.Items.Add
    (
       (x+1).ToString("00") 
       + " " 
       + CultureInfo.CurrentCulture.DateTimeFormat.MonthNames.GetValue(x)
     );
}

Это создает выпадающий список, который выглядит так:

01 января 02 февраля 3 марта ... 12 декабря

Еще одно уточнение может сделать отображаемый месяц текущим месяцем, добавив:

cboMonth.Text = DateTime.Now.Month.ToString("00") 
   + " " 
   + CultureInfo.CurrentCulture.DateTimeFormat.MonthNames.GetValue(DateTime.Now.Month);

После цикла for.

5
ответ дан 2 December 2019 в 03:29
поделиться

Вот мое решение, которое очень похоже на решение @ jesse-brown (принятый ответ)

VB.NET:

В классе глобальных функций:

Public Shared Function GetMonthList() As Generic.Dictionary(Of String, String)
    Dim months As New Generic.Dictionary(Of String, String)()
    For m As Int32 = 1 To 12
        months.Add(String.Format("{0:0#}", m), CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(m))
    Next

    Return months
End Function

Вкл. страница ASPX:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    ddMonth.DataSource = GlobalFunctions.GetMonthList()
    ddMonth.DataValueField = "Key"
    ddMonth.DataTextField = "Value"
    ddMonth.DataBind()

End Sub

Эта реализация реализована в VB.NET, потому что именно это и используется этим веб-приложением (устаревшее), однако большое спасибо за примеры на C # (мой предпочтительный язык), я публикую VB .NET здесь, чтобы помочь сообществу VB.NET.

3
ответ дан 2 December 2019 в 03:29
поделиться

Для ASP.NET MVC это то, что я делаю.

Примечание Я предпочитаю использовать скрытый код для подобных вещей - он по-прежнему является частью представления, и нет ничего плохого в представлении, создающем список SelectList.

PaymentControl.ascx

 <%= Html.DropDownList("ExpirationMonth", ExpirationMonthDropdown)%> / 
 <%= Html.DropDownList("ExpirationYear", ExpirationYearDropdown)%>

PaymentControl.ascx .cs

public partial class PaymentControl : ViewUserControl<CheckoutModel>
    {
        public IEnumerable<SelectListItem> ExpirationMonthDropdown
        {
            get
            {
                return Enumerable.Range(1, 12).Select(x =>

                    new SelectListItem()
                    {
                        Text = CultureInfo.CurrentCulture.DateTimeFormat.AbbreviatedMonthNames[x - 1] + " (" + x + ")",
                        Value = x.ToString(),
                        Selected = (x == Model.ExpirationMonth)
                    });
            }
        }

        public IEnumerable<SelectListItem> ExpirationYearDropdown
        {
            get
            {
                return Enumerable.Range(DateTime.Today.Year, 20).Select(x =>

                new SelectListItem()
                {
                    Text = x.ToString(),
                    Value = x.ToString(),
                    Selected = (x == Model.ExpirationYear)
                });
            }
        }
    }
2
ответ дан 2 December 2019 в 03:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: