PDA

View Full Version : تعریف کلاس برای تاریخ فارسی و سپس فراخوانی در صفحات asp



basic_forum
شنبه 30 مهر 1390, 15:56 عصر
سلام

قبلا برای تبدیل تاریخ فارسی از دستور زیر در همه صفحات استفاده میکردم ، حالا میخوام اونو توی یک کلاس تعریف کنم تا هر موقع نیاز بود فراخوانی بشه ؛ اما دستور فراخوانی توی صفحات وب رو بلد نیستم .
با چه دستوری میشه توی خاصیت PageLoad صفحات این کلاس رو صدا زد !؟

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

alibabaei2
شنبه 30 مهر 1390, 19:25 عصر
برای استفاده از تاریخ شمسی بهتره که برنامه persian calender رو از آدرس زیر دریافت نماید
http://persianculture.codeplex.com/
بعد از نصب برنامه در فایل Global.asax کد زیر را قرار نمایید
protected void Application_BeginRequest(object sender, EventArgs e)
{
CultureInfo culture_info = new CultureInfo("fa-IR");
// to make following line working, please install the Persian Culture Package (http://persianculture.codeplex.com)
culture_info.DateTimeFormat.Calendar = new PersianCalendar();


culture_info.DateTimeFormat.AbbreviatedDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
culture_info.DateTimeFormat.ShortestDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
culture_info.DateTimeFormat.DayNames = new string[] { "یکشنبه", "دوشنبه", "ﺳﻪشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه" };
culture_info.DateTimeFormat.AbbreviatedMonthNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
culture_info.DateTimeFormat.MonthNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
culture_info.DateTimeFormat.AbbreviatedMonthGeniti veNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
culture_info.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Saturday;
culture_info.DateTimeFormat.AMDesignator = "ق.ظ";
culture_info.DateTimeFormat.PMDesignator = "ب.ظ";
culture_info.DateTimeFormat.ShortDatePattern = "yyyy/MM/dd";
culture_info.DateTimeFormat.LongDatePattern = "yyyy/MM/dd";

Thread.CurrentThread.CurrentCulture = culture_info;
Thread.CurrentThread.CurrentUICulture = culture_info;
}

دیگه هیچ کاری نمی خواد انجام دهید تاریخ ها در دیتا بیس به صورت میلادی ذخیره میشه و هر جا که بخواهی تاریخ رو نمایش دهید به صورت شمسی نمایش داده میشه
حتی وقتی calender هم در صفحه می گذارید تاریخ را به صورت شمسی نمایش می دهد

asif1358
شنبه 30 مهر 1390, 19:37 عصر
سلام.
کافی است همان کلاسی که نوشته اید را در پوشه App_Code گذاشته و هرجا آن را لازم دارید، یک نمونه از آن کلاس ایجاد کرده و آن Function که نوشته اید را فراخوانی کنید.

basic_forum
شنبه 30 مهر 1390, 22:34 عصر
سلام . دوست گلم چجوری باید فراخوانی کنم ؟ کـــد !؟ دستور فراخوانیش به چه شکلیه ؟ ( از دستوری که به ذهنم میرسه ارور میگیره )

سلام.
کافی است همان کلاسی که نوشته اید را در پوشه App_Code گذاشته و هرجا آن را لازم دارید، یک نمونه از آن کلاس ایجاد کرده و آن Function که نوشته اید را فراخوانی کنید.

basic_forum
شنبه 30 مهر 1390, 22:35 عصر
ممنون . فقط چجوری میشه توی یک کنترل لیبل نمایشش داد ؟ کد فراخوانیش چیه !؟

برای استفاده از تاریخ شمسی بهتره که برنامه persian calender رو از آدرس زیر دریافت نماید
http://persianculture.codeplex.com/
بعد از نصب برنامه در فایل Global.asax کد زیر را قرار نمایید
protected void Application_BeginRequest(object sender, EventArgs e)
{
CultureInfo culture_info = new CultureInfo("fa-IR");
// to make following line working, please install the Persian Culture Package (http://persianculture.codeplex.com)
culture_info.DateTimeFormat.Calendar = new PersianCalendar();


culture_info.DateTimeFormat.AbbreviatedDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
culture_info.DateTimeFormat.ShortestDayNames = new string[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };
culture_info.DateTimeFormat.DayNames = new string[] { "یکشنبه", "دوشنبه", "ﺳﻪشنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه" };
culture_info.DateTimeFormat.AbbreviatedMonthNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
culture_info.DateTimeFormat.MonthNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
culture_info.DateTimeFormat.AbbreviatedMonthGeniti veNames = new string[] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
culture_info.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Saturday;
culture_info.DateTimeFormat.AMDesignator = "ق.ظ";
culture_info.DateTimeFormat.PMDesignator = "ب.ظ";
culture_info.DateTimeFormat.ShortDatePattern = "yyyy/MM/dd";
culture_info.DateTimeFormat.LongDatePattern = "yyyy/MM/dd";

Thread.CurrentThread.CurrentCulture = culture_info;
Thread.CurrentThread.CurrentUICulture = culture_info;
}

دیگه هیچ کاری نمی خواد انجام دهید تاریخ ها در دیتا بیس به صورت میلادی ذخیره میشه و هر جا که بخواهی تاریخ رو نمایش دهید به صورت شمسی نمایش داده میشه
حتی وقتی calender هم در صفحه می گذارید تاریخ را به صورت شمسی نمایش می دهد

basic_forum
یک شنبه 01 آبان 1390, 07:21 صبح
دوستای خوبم ، چطوری میتونم هر یک از کلاسهای فوق رو فراخوانی کنم و در یک کنترل Lable نمایش بدم !؟
مد نظر من همون کلاسیه که خودم ضمیمه کردم ؛ با چه دستوری باید فراخوانیش کنم !؟

کلاسی که ضمیمه کردم تاریخ رو به شمسی تبدیل میکنه و در انتها در یک متغیر string میریزه ، چجوری این متغییر استرینگ رو صدا کنم ؟
ممنون . کمکم کنید

alibabaei2
یک شنبه 01 آبان 1390, 12:55 عصر
ممنون . فقط چجوری میشه توی یک کنترل لیبل نمایشش داد ؟ کد فراخوانیش چیه !؟

اگر تاریخ امروز رو می خوااهید نمایش بدید فقط کافیه بنویسید
Label1.Text=DateTime.Now;

asif1358
یک شنبه 01 آبان 1390, 13:21 عصر
سلام
Label1.Text=MyFunctionName