Bind Checkboxlist со следующими 7 днями Date Value - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть одна CheckboxList на моей странице, и я хочу динамически связывать значение в следующие 7 дней (не сегодня) в моем списке. Значение должно быть вставлено в формате, показанном на рисунке справа внизу, и когда я отображаю страницу в aspx, я хочу отобразить дату и день, как показано в первом формате изображения.

Все динамики c переплет выполнить с использованием Page_Load()

<asp:CheckBoxList ID="CheckBoxList1" runat="server"></asp:CheckBoxList>

p enter image description here

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Ну, как я понимаю сценарий, вы хотите отобразить список следующих семи дней в формате dayOfWeek year-month-day. Вот один из способов сделать это:

Вы CheckBoxList должны выглядеть следующим образом:

<asp:CheckBoxList ID="CheckBoxList1" runat="server" DataTextField="date"   
        DataValueField="Id" /* Other Attributes */>
</asp:CheckBoxList> 

И это должен быть метод для его привязки:

public void BindCheckBoxListWithNextSevenDays()
{
    DateTime today = DateTime.Now;

    DataTable dt = new DataTable();
    dt.Columns.Add("Id", typeof(int));
    dt.Columns.Add("date", typeof(string));

    for(int i = 1; i <= 7; i++)
    {
        dt.Rows.Add(i, today.AddDays(i).ToString("dddd yyyy-MM-dd")); // (dddd yyyy-MM-dd) will return the date in following format (Wednesday 2020/02-05)
    }
    CheckBoxList1.DataSource = dt;  
    CheckBoxList1.DataBind();
}
0 голосов
/ 05 февраля 2020

Редактировать # 2:

public void BindCheckBoxList()
{
    IEnumerable<string> dates=Enumerable.Range(1, 7).Select(p=>DateTime.Now.Date.AddDays(p).ToString("dddd HH:mm:ss"));
        CheckBoxList1.DataSource = dates;  
        CheckBoxList1.DataBind();
}

V # 1

Создать один метод, который будет возвращать даты в списке в формате, который вам нравится,

static IEnumerable<string> DatsOnInterval(DateTime from, DateTime thru,int dateInterval=1)
    {
        for(var day = from.Date; day.Date <= thru.Date; day = day.AddDays(dateInterval))
            yield return day.DayOfWeek.ToString()+" "+day.Date.ToString("dd-MM-yyyy HH:mm:ss");
    }

Назовите это так и заполните список флажков,

public static void Main()
    {

        try
        {
        var fromDt=DateTime.Now.AddDays(1);
        var toDt=fromDt.AddDays(7);
    var datas=DatsOnInterval(fromDt,toDt);
            foreach(var x in datas)
            {
                Console.WriteLine(x);
            }

        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
...