با سلام.
تاریخ را بصورت میلادی در دیتابیس ذخیره می کنم.
حالا برای نمایش در grid می خوام به شمسی نمایش داده شود.
در صورت امکان راهنمایی کنید
با سلام
شما احتیاج به یک تابع دارید مثل :
public string miladi2shamsi(DateTime _date ) { PersianCalendar pc=new PersianCalendar(); StringBuilder sb=new StringBuilder(); sb.Append(pc.GetYear(_date).ToString("0000")); sb.Append ("/"); sb.Append (pc.GetMonth(_date ).ToString("00")); sb.Append ("/"); sb.Append(pc.GetDayOfMonth(_date).ToString("00")); sb.Append("========>"); sb.Append(pc.GetDayOfWeek(_date).ToString()); string s=pc.GetDayOfWeek (_date).ToString (); switch(s.ToUpper()) { case "SATURDAY": sb.Append("(شنبه) "); break; case "SUNDAY": sb.Append("(يكشنبه"); break; case "MONDAY": sb.Append("(دوشنبه"); break; case "FRIDAY": sb.Append("(جمعه)"); break; } return sb.ToString(); }
و یک دکمه مثل زیر
private void button1_Click(object sender, EventArgs e) { string mytoday = miladi2shamsi(DateTime.Now); MessageBox.Show(mytoday); }
امیدوارم به کارتون بیاد
با سپاس فراوان از پاسخ شما
می خوام بدون زدن دکمه این تبدیل تاریخ انجام بشه
می خوام وقتی فیلدهای جدول رو در grid می ریزم خود grid بره تابع رو صدا بزنه و عملیات تبدیل رو انجام بده و در مکان مشخص شده نمایش دهد.این کار برای همه رکوردها می خوام انجام بشه
خب شما از چه نوع برنامه نویسی استفاده می کنید؟
webform?
mvc?
mvc
شما باید کد خودتون رو به شکل زیر تغییر بدید تا بتونید این کار را انجام بدهید
public ActionResult Index() { DataBaseContext db = new DataBaseContext(); IList<yourmodel> listview = new List<yourmodel>(); var yourmodelvar = db.yourmodel.Where().ToList(); foreach (var item in yourmodelvar) { listview.Add(new yourmodel() { Article_ID = item.Article_ID, Title = miladi2shamsi(item.yourinputdate) }); } ViewBag.information= ArticlesList; return View(); }
و در قسمت view هم
@foreacho(var item in viewbag.information) { <p>@item.date</p> }
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)