Получить все значения dataGridTextboxColumn - PullRequest
0 голосов
/ 08 декабря 2009

У меня есть dataGridView, у которого есть столбец с именем Date Due, который имеет тип System.DataTime. Я хочу поместить эти даты в месячный календарь. Должен ли я перебирать столбец? Должен ли я его разыграть?

1 Ответ

1 голос
/ 08 декабря 2009

чтобы получить дату из каждого столбца ДА, вам нужно перебрать все строки в столбце. Поскольку вы отображаете дату в виде текста, вам необходимо выполнить синтаксический анализ, используя методы DateTime.Parse или DateTime.TryParse.

РЕДАКТИРОВАТЬ: - предположим, что это приложение формы. Я добавил DataGridView, MonthCalendar и Button. Я смог получить даты из gridview и выделить выбранные даты в месячном кал.

public Form2()
{
    InitializeComponent();

    CreateData();
}

private void CreateData()
{
    var dtb = new DataTable();
    dtb.Columns.Add("Column1");
    dtb.Columns.Add("Column2");
    dtb.Columns.Add("Column3");

    var dt = DateTime.Now;
    var rand = new Random();

    for (var i = 0; i < 10; i++)
    {
        var r = dtb.NewRow();

        r.ItemArray = new object[] {dt.ToString("ddd"), dt.ToString("MMM"), dt};
        dt = dt.AddDays(rand.Next(30));

        dtb.Rows.Add(r);
    }

    dataGridView1.DataSource = dtb;
}

private void button1_Click(object sender, EventArgs e)
{
    var bds = new List<DateTime>();
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        DateTime dt;
        var b = DateTime.TryParse(row.Cells[row.Cells.Count - 1].Value+"", out dt);
        if(!b) continue;

        bds.Add(dt);
    }

    cal.BoldedDates = bds.ToArray();
}
...