سلام دوستان من تاریخ رو بصورت میلادی در دیتابیس ذخیره کردم حالا می خوام بصورت شمسی توی datagridview نمایش بدم چطور باید اینکارو انجام بدم؟
نکته: من datagridview رو بصورت ویزاردی با tableadapter پر کردم
سلام دوستان من تاریخ رو بصورت میلادی در دیتابیس ذخیره کردم حالا می خوام بصورت شمسی توی datagridview نمایش بدم چطور باید اینکارو انجام بدم؟
نکته: من datagridview رو بصورت ویزاردی با tableadapter پر کردم
سلام ، فکر کنم معقولانه ترین راه اینه که یه کانورتر کوچیک بنویسین تمام تاریخ های میلادیتون رو به شمسی تبدیل کنه ، چون به هر حال بعدا دوباره با همین تاریخ سر و کار خواهید داشت.
اگه منبع داده تون ستون های DateTime داره برای رخداد CellFormatting کد بنویسید :
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if ((e.Value is DateTime) == false)
{
return;
}
var persian = new System.Globalization.PersianCalendar();
var date = (DateTime)e.Value;
e.Value = string.Format("{0}/{1:00}/{2:00}", persian.GetYear(date), persian.GetMonth(date), persian.GetDayOfMonth(date));
e.FormattingApplied = true;
}
و اگر منبع داده تون ستون های string مثل ("2017/07/15") داره :
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if ((e.Value is string) == false)
{
return;
}
var persian = new System.Globalization.PersianCalendar();
DateTime date;
if (DateTime.TryParse((string)e.Value, out date))
{
e.Value = string.Format("{0}/{1:00}/{2:00}", persian.GetYear(date), persian.GetMonth(date), persian.GetDayOfMonth(date));
e.FormattingApplied = true;
}
}