وقت اساتید بخیر. ممکنه راهنمائی بفرمائید برای اینکه بعد از بایند شدن ستون دیتاگرید به جدول بتونم تاریخ میلادی رو به شمسی تبدیل کنم چکار کنم؟
یک جا گفته بود از رویداد LoadingRowشروع کنم ولی ادامه رو ننوشته بود.
به راحتی میتونید توی getter تاریخ در مدل، به جای تاریخ میلادی تاریخ خورشیدی رو برگردونید.
با تشکر از توجه شما اگر دیتاگرید من یک ستون به اسم Time داشته باشه اون وقت
public string Time { get; set; }
این کدی هست که توی جدول که طرف سی شارپ باشه یکی یکی ستون ها رو get; set; کرده و دیتا گرید من به این جدول وصل هست.
منظورتون همینجاست؟
یعنی کدهائی که برای شمسی کردن تاریخ دارم رو اینجا بنویسم؟ سخت هست برایم کمی بیشتر راهنمائی امکان داره؟
زمانی که داره Get میکنه باید تبدیل شده به خورشیدی رو برگردونین مثل کد زیر:
public string Time { get { DateTime englishDate = DateTime.Parse(Time); PersianCalendar pc = new PersianCalendar(); return string.Format("{0}/{1}/{2}", pc.GetYear(englishDate), pc.GetMonth(englishDate).ToString("00"), pc.GetDayOfMonth(englishDate).ToString("00")); } set { } }
از توجه شما سپاسگزارم اما به من این خطا رو میده
یک توضیح کوچک
البته متوجه شدم که Time در SQL بصورت استرینگ بود که من جدول رواصلاح کردم و یک ستون به اسم MiladiDate که از نوع date در اس کیو ال بود ایجاد کردم. که تاریخ رو برای من مشخص می کنه
با این توصیف در کد شما بجای Time که شما get , set رو نوشتید من به این صورت در آوردم لطفا بفرمائید کجا رو اصلاح کنم؟
و
خط بعدی رو هم این ایراد میگیره
چه جائی رو باید تغییر بدم امکان داره اشکال بخاطر MiladiDate از نوع date باشه؟
کدی که من بهتون دارم برای ورودی و خروجی از نوع string کار میکنه
اما شما داری آبجکتی از نوع Nullable DateTime بهش میدی.
باید این قسمت رو به string تغییر بدی
ایراد دیگری میگیره اینو دیگه نمیدونم علتش چیه؟
این خطا رو می گیره
Cannot evaluate expression because the current thread is in a stack overflow state.
public string MiladiDate { get; set; } public string PersianDate { get { DateTime englishDate = DateTime.Parse(MiladiDate); PersianCalendar pc = new PersianCalendar(); return string.Format("{0}/{1}/{2}", pc.GetYear(englishDate), pc.GetMonth(englishDate).ToString("00"), pc.GetDayOfMonth(englishDate).ToString("00")); } }
در اینجا که پرسیدم راه حل رو بصورت بالا دادند ولی در این صورت تاریخ میلادی بر میگرده یعنی PersianDate رو کجا اعمال کنم؟
خب این رو که اول بهتون گفتم!!! 😐
همین تاریخ فارسی رو برمیگردونه فقط باید peraiandate رو به دیتاگرید بدید تا تاریخ رو از اینجا بخونه نه miladidate
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)