PDA

View Full Version : آموزش: تبدیل تاریخ میلادی به شمسی در گریدویو



alia.n
یک شنبه 29 مرداد 1391, 14:39 عصر
سلام دوستان من اطلاعاتم رو از پایگاه داده میخونم ودر گریدویو نمایش میدم اما فیلدهای تاریخم به صورت میلادیه ایا میشه در هنگام لود شدن در گرید ویو به شمسی تبدیل بشن(من چند فیلد تاریخ دارم)

fakhravari
یک شنبه 29 مرداد 1391, 15:31 عصر
خیلی قدیمی .
متاسفانه سرچ نکردید.

static PersianCalendar persianCalendar = new PersianCalendar();
public static string ToShamsi(DateTime miladiDate)
{
string year = persianCalendar.GetYear(miladiDate).ToString();
string month = persianCalendar.GetMonth(miladiDate).ToString().Pa dLeft(2, '0');
string day = persianCalendar.GetDayOfMonth(miladiDate).ToString ().PadLeft(2, '0');
return year + "/" + month + "/" + day;
}




<asp:Label ID="Label1" runat="server" Font-Bold="true" Text='<%# ToShamsi(Convert.ToDateTime(Eval("Date")))%>'></asp:Label>

h_r_sh
یک شنبه 29 مرداد 1391, 15:47 عصر
1. در متد grid_RowDataBind مقدار تاریخ رو بگیرید و تبدیل کنید.
2. یک تابع بنویسید که کارش تبدیل تاریخ باشه. بعد:

<asp:Label runat="server" ID="lblData" Text='<%# this.ChangeDate(Eval("Date").ToString() %>' />

alia.n
یک شنبه 29 مرداد 1391, 16:31 عصر
دوست عزیز من مشکلم با تبدیل تاریخ در گرید ویو است
من خودم از کامپونت persia استفاده میکنم و بدون مشکل جواب میده فقط بلد نیستم تاریخ هر ستون در گرید ویو که به صورت میلادی هست رو به شمسی تبدیل کنم.

alia.n
یک شنبه 29 مرداد 1391, 16:33 عصر
1. در متد grid_RowDataBind مقدار تاریخ رو بگیرید و تبدیل کنید.
2. یک تابع بنویسید که کارش تبدیل تاریخ باشه. بعد:

<asp:Label runat="server" ID="lblData" Text='<%# this.ChangeDate(Eval("Date").ToString() %>' />


سلام و ممنون ار توجهتون
یه کم بیشتر توضیح میدین درست نگرفتم باید کجا بنویسم و بعد تابع چه جوری باشه اخه من از کامپونت persia استفاده میکنم دیگه تابع نمی خواد.

h_r_sh
یک شنبه 29 مرداد 1391, 21:36 عصر
راه اول:

<asp:Label runat="server" ID="lblShDate" Text='<%# this.DateConvert(Eval("MiladyDate").ToString()) %>' />

در قسمت کد:

public string DateConvert(string miladyDate)
{
// your code to convert date
return "Changed date";
}