مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

نمایش تاریخ فارسی در grid

  • جمعه 30 بهمن 1394
  • 16:59
تشکر میکنم

با سلام.

تاریخ را بصورت میلادی در دیتابیس ذخیره می کنم.

حالا برای نمایش در grid می خوام به شمسی نمایش داده شود.

در صورت امکان راهنمایی کنید

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

mrpeach

عضویت از 1394/04/13

  • جمعه 30 بهمن 1394
  • 18:28

با سلام

شما احتیاج به یک تابع دارید مثل :

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);

 

        }

امیدوارم به کارتون بیاد

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • جمعه 30 بهمن 1394
  • 18:49

با سپاس فراوان از پاسخ شما

می خوام بدون زدن دکمه این تبدیل تاریخ انجام بشه

می خوام وقتی فیلدهای جدول رو در grid می ریزم خود grid بره تابع رو صدا بزنه و عملیات تبدیل رو انجام بده و در مکان مشخص شده نمایش دهد.این کار  برای همه رکوردها می خوام انجام بشه

 

کاربر سایت

mrpeach

عضویت از 1394/04/13

  • جمعه 30 بهمن 1394
  • 18:50

خب شما از چه نوع برنامه نویسی استفاده می کنید؟

webform?

mvc?

 

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • جمعه 30 بهمن 1394
  • 18:57

mvc

کاربر سایت

mrpeach

عضویت از 1394/04/13

  • جمعه 30 بهمن 1394
  • 19:06

شما باید کد خودتون رو به شکل زیر تغییر بدید تا بتونید این کار را انجام بدهید

 

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>
}

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)