PDA

View Full Version : نمایش تاریخ شمسی در گریدویو



asp2.net
یک شنبه 29 اردیبهشت 1392, 10:03 صبح
با سلام و خسته نباشی من از کلاس PersianCalendar و تبدیل تاریخ شمسی به میلادی (http://barnamenevis.org/showthread.php?67629-استفاده-از-کلاس-PersianCalendar-و-تبدیل-تاریخ-شمسی-به-میلادی&highlight=%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE+%D8%B4%D9 %85%D8%B3%DB%8C) اقای مهدی فراهانی استفاده میکنم .
میخوام فیلد تاریخ میلادی که در جدول هستش در گریدویو تاریخ را بصورت شمسی نمایش بده. چیکار باید کنم؟ از یک فرمتی خاصی باید استفاده کنم و یا... ممنون میشم راهنمایی کنید. با تشکر .

asp2.net
یک شنبه 29 اردیبهشت 1392, 13:16 عصر
کسی نتونست

ali9698
یک شنبه 29 اردیبهشت 1392, 14:05 عصر
من با کد زیر این کار رو کردم.

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
DateTime d = Convert.ToDateTime(e.Row.Cells[0].Text);
e.Row.Cells[0].Text = ToShamsi(d);
}
public static string ToShamsi(DateTime miladiDate)
{
PersianCalendar persianCalendar = new PersianCalendar();
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;
}

asp2.net
دوشنبه 30 اردیبهشت 1392, 15:49 عصر
عزیزم تو گرید ویو باید چیکار کنم؟

saeed31641
دوشنبه 30 اردیبهشت 1392, 17:18 عصر
شما یه تابه بنویس بعد اون تابه در گرید به این طریق فراخوانی کن


<asp:TemplateField HeaderText="تاریخ ارسال درخواست" >
<ItemTemplate>
<asp:Label ID="TypeReq2" Font-Underline="false" runat="server"
Text='<%#ConstList.DateStoMHH(Eval("FReqDate").ToString()) %>' />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>

ahmad156
دوشنبه 30 اردیبهشت 1392, 17:47 عصر
در ابتدا Extension Method موجود در صفحه زیر رو پروژه اضافه کنین.
http://barnamenevis.org/showthread.php?306418-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%B4%D9%85%D8%B3%DB%8C-%D8%A8%D9%87-%D9%85%DB%8C%D9%84%D8%A7%D8%AF%DB%8C-%D9%88-%D8%A8%D8%A7%D9%84%D8%B9%DA%A9%D8%B3-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-Extension-Methods&highlight=topersiandatetime
سپس برای فیلد تاریخ در GridView به صورت زیر عمل کنین

<asp:TemplateField HeaderText="تاریخ ">
<ItemTemplate>
<span>
<%# ((DateTime) Eval("createdate")).ToPersianDateTime() %></span>
</ItemTemplate>
</asp:TemplateField>

موفق باشین

alireza724
دوشنبه 30 اردیبهشت 1392, 18:35 عصر
با سلام
اگر کلاس persian calendar را استفاده میکنید در فایل Global در قسمت BeginRequest کد زیر را وارد کنید:

var persianCulture = new PersianCulture();
Thread.CurrentThread.CurrentCulture = persianCulture;
Thread.CurrentThread.CurrentUICulture = persianCulture;


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