نمایش نتایج 1 تا 22 از 22

نام تاپیک: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

  1. #1
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    Drive: C
    پست
    506

    نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    سلام
    دوستان چطوری میتونم فیلد تاریخ در دیتاگرید رو به صورت فارسی نشون بدم؟

  2. #2
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    Visual Studio 2013
    پست
    218

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    سلام
    از کلاس PersianCalendar استفاده کنید!

  3. #3

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    اول این تابع رو در کلاس اضافه کن

            /// <summary>
    ///
    /// </summary>
    /// <param name="md">تاریخ میلادی</param>
    /// <returns>تاریخ شمسی</returns>
    public static string Shamsi_Date(DateTime md)
    {
    PersianCalendar PersiaC = new PersianCalendar();

    try
    {
    string day = "", Month = "";

    day = (PersiaC.GetDayOfMonth(md) < 10) ? "0" + PersiaC.GetDayOfMonth(md).ToString() : PersiaC.GetDayOfMonth(md).ToString();

    Month = (PersiaC.GetMonth(md) < 10) ? "0" + PersiaC.GetMonth(md).ToString() : PersiaC.GetMonth(md).ToString();

    return PersiaC.GetYear(md).ToString() + "/" + Month.ToString() + "/" +
    day.ToString();
    }
    catch (Exception ex)
    {
    FMessageBox.Show(ex.Message, "پیغام خطا", FMessageBoxButtons.OK, FMessageBoxIcons.Error);
    return "";
    }
    }


    بعد در رویداد CellFormatting مربوط به دیتا گرید کد زیر را بنویس

            private void DatagvMain_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {

    if (e.Value != null)
    {
    if (DatagvMain.Columns[e.ColumnIndex].Name == "DateSend")
    {
    try
    {
    e.Value = Date.Shamsi_Date(Convert.ToDateTime(e.Value));
    }
    catch { }
    }
    if (DatagvMain.Columns[e.ColumnIndex].Name == "DateRecord")
    {
    try
    {
    e.Value = Date.Shamsi_Date(Convert.ToDateTime(e.Value));
    }
    catch { }
    }
    }
    }

  4. #4

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    سلام
    فونت گريد فارسي كنيد .

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    Drive: C
    پست
    506

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    داداش من یه کلاس ساختم ولی ارور میده
      using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace project_sapt
    {
    public static string Shamsi_Date(DateTime md)
    {
    PersianCalendar PersiaC = new PersianCalendar();

    try
    {
    string day = "", Month = "";

    day = (PersiaC.GetDayOfMonth(md) < 10) ? "0" + PersiaC.GetDayOfMonth(md).ToString() : PersiaC.GetDayOfMonth(md).ToString();

    Month = (PersiaC.GetMonth(md) < 10) ? "0" + PersiaC.GetMonth(md).ToString() : PersiaC.GetMonth(md).ToString();

    return PersiaC.GetYear(md).ToString() + "/" + Month.ToString() + "/" +
    day.ToString();
    }
    catch (Exception ex)
    {
    FMessageBox.Show(ex.Message, "پیغام خطا", FMessageBoxButtons.OK, FMessageBoxIcons.Error);
    return "";
    }
    }



    10.jpg

  6. #6

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    فکر کنم اگه فونت فیلد تاریخ رو فارسی کنی اوکی بشه

  7. #7
    کاربر دائمی آواتار Alireza.imani
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    Start / Visual Studio 2017
    پست
    327

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    فونت اون تکسن باکسی که به جدول دیتابیس اطلاعات ارسال می کنه رو ، فونتی قرار دهید که اعداد فارسی باشه.

  8. #8
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    Drive: C
    پست
    506

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    من میخوام با استفاده از کد این کارو انجام بدم!

  9. #9
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    Visual Studio 2013
    پست
    218

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    سلام
    اول از همه:
    using System.Globalization;

    بعد:
            DateTime md = new DateTime();
    PersianCalendar PersiaC = new PersianCalendar();

    بعد از اون:
     md = DateTime.Now;
    string day = "", Month = "",Year = "";
    MessageBox.Show(PersiaC.GetYear(md).ToString() + "/" + PersiaC.GetMonth(md).ToString()+"/"+PersiaC.GetDayOfMonth(md).ToString(), "تاریخ");

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

  10. #10
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    Visual Studio 2013
    پست
    218

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    این هم یه پروژه برای نمایش تاریخ به صورت شمسی:

    اگه مفید بود تشکر فراموش نشود.
    فایل های ضمیمه فایل های ضمیمه

  11. #11
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    Drive: C
    پست
    506

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    ممنون داداش ولی فارسی نشد

  12. #12
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    Visual Studio 2013
    پست
    218

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید


    مگه اینو نشون نمیده؟؟؟؟؟؟
    1391/10/11

    منظورت از فارسی چیه؟؟؟؟

  13. #13
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    Drive: C
    پست
    506

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    داداش میخوام اینجوری نمایش بده البته در دیتاگرید
    111.jpg

  14. #14
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    Visual Studio 2013
    پست
    218

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    اون دیگه مربوط میشه به فونت دیتا گرید.
    فونتشو بکن Tahoma درست میشه!

  15. #15
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    Drive: C
    پست
    506

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    داداش اگه توجه کنی اصلا تو properties دیتاگرید گزینه ای بنام font وجود ندارد!...
    به هر حال ممنون ازت داداش

  16. #16
    کاربر دائمی آواتار moharam1370
    تاریخ عضویت
    آذر 1389
    محل زندگی
    قم
    پست
    121

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    سلام
    ببین با این مشکلت حل میشه ؟
    عکس های ضمیمه عکس های ضمیمه

  17. #17
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    شما میتونی بعد از اینکه تاریخ رو به صورت شمسی در آوردی (با هر روشی) توی رویداد CellFormatting، کاراکترهای عددی انگلیسی رو با فارسی جایگزین کنی:

    private string NumbersToFarsi(string s)
    {
    char[] output = new char[s.Length];
    for (int i = 0; i < s.Length; i++)
    {
    if (char.IsDigit(s[i]))
    {
    output[i] = (char)(0x06F0 + (int)s[i] - (int)'0');
    }
    else
    {
    output[i] = s[i];
    }
    }
    return new string(output);
    }

    private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
    if (e.ColumnIndex == /* Specified Column Index */)
    {
    if (e.Value is string)
    {
    e.Value = NumbersToFarsi((string)e.Value);
    e.FormattingApplied = true;
    }
    }
    }

  18. #18

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    من از رویداد cellformatting استفاده کردم ولی خیلی cpu رو درگیر میکنه!
    چیکار کنم؟

  19. #19
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    نقل قول نوشته شده توسط salehsam مشاهده تاپیک
    من از رویداد cellformatting استفاده کردم ولی خیلی cpu رو درگیر میکنه!
    چیکار کنم؟
    کدی که در CellFormatting میگذارید رو باید با دقت و به بهترین نحو بنویسید تا کمترین زمان اجرا رو داشته باشه.برای تبدیل حروف به فارسی اگه طول متن ها زیاد نباشه و به صورت موثر نوشته بشه نباید مشکل خاصی به وجود بیاره ولی به هر حال راه دوم این هست که اطلاعات رو ابتدا فرمت کنید و بعد برای نمایش به Grid بدین...

  20. #20

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    من از این کد استفاده می کنم

    var date = new dtc();
    if (this.dgv_dore.Columns[e.ColumnIndex].Name == "dore_startdate") //PersianDate == Your Date Column Name
    {
    if (e.Value != null)
    {
    e.Value = Convert.ToString(date.miladitoshamsi(Convert.ToDat eTime((e.Value))));

    }
    }

    چیکار کنم که فقط یک بار تغییر بده؟
    من با EF اطلاعات رو ثبت و نمایش میدم چجوری اول فرمت کنم بعد گرید کنم؟

  21. #21

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    نقل قول نوشته شده توسط vahidth مشاهده تاپیک
    داداش اگه توجه کنی اصلا تو properties دیتاگرید گزینه ای بنام font وجود ندارد!...
    به هر حال ممنون ازت داداش
    سلام. اگه فونت فرم tahoma باشه بعد دیتا گرید به فرم اضافه کنی به طور خودکار فونت دیتاگرید هم tahoma میشه اگه بخوای فقط فونت دیتا گریدو عوض کنی باید تو تنظیمات ستون یا سطر اینکارو انجام بدی وگرنه خود دیتاگرید خاصیت فونت نداره. راجب کد cellformatting هم کدی که گداشتم کاملا درسته و به درستی کار میکنه اما اینکه cpu رو خیلی مشغول میکنه حق با دوستمونه باید کدهارو خیلی خوب بنویسی. یه روش دیگه هم هست که از خود sql تاریخ فارسی میشه و بعد نمایش میده اگه خواستین آموزششو براتون میزارم. البته این آموزشو با جستجو تو همین سایت پیدا میکنید اگه پیدا نشد بهم اطلاع بدین

  22. #22
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: نحوه فارسی نمایش دادن تاریخ در دیتاگرید

    نقل قول نوشته شده توسط salehsam مشاهده تاپیک
    من از این کد استفاده می کنم

    var date = new dtc();
    if (this.dgv_dore.Columns[e.ColumnIndex].Name == "dore_startdate") //PersianDate == Your Date Column Name
    {
    if (e.Value != null)
    {
    e.Value = Convert.ToString(date.miladitoshamsi(Convert.ToDat eTime((e.Value))));

    }
    }

    چیکار کنم که فقط یک بار تغییر بده؟
    من با EF اطلاعات رو ثبت و نمایش میدم چجوری اول فرمت کنم بعد گرید کنم؟
    زیاد با EF کار نکردم ولی فکر میکنم شما میتونی اول یک متد که کارش تبدیل تاریخ هست رو بنویسی و کدهایی که گذشتی رو داخلش قرار بدی و بعد توی select مربوط به LINQ اون متد رو فراخوانی کنی.چیزی شبیه به این:

    var result = from record in db.Table1
    select new {...... , Date = Convert(record.Date)};

    private string Convert(string value)
    {
    // Convert value
    return value;
    }

تاپیک های مشابه

  1. سوال: گرید ویو و نمایش دادن ؟ برای کارکتر فارسی
    نوشته شده توسط siavash_n در بخش C#‎‎
    پاسخ: 4
    آخرین پست: جمعه 25 آذر 1390, 23:05 عصر
  2. معکوس نمایش دادن تاریخ در کریستال
    نوشته شده توسط rezvanbaztab در بخش C#‎‎
    پاسخ: 3
    آخرین پست: شنبه 09 مهر 1390, 12:05 عصر
  3. نحوه فارسی نشان دادن فیلدها فقط در حالت open فایل
    نوشته شده توسط mina_148m در بخش Access
    پاسخ: 1
    آخرین پست: جمعه 13 شهریور 1388, 15:27 عصر
  4. سوال: نحوه نمایش دادن اکانت Administrator
    نوشته شده توسط maminb در بخش VB.NET
    پاسخ: 3
    آخرین پست: شنبه 05 اردیبهشت 1388, 19:39 عصر
  5. اشکال در نشان دادن تاریخ فارسی.
    نوشته شده توسط سارا نجفی در بخش Classic ASP
    پاسخ: 10
    آخرین پست: جمعه 06 مرداد 1385, 09:53 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •