PDA

View Full Version : سوال: نشان دادن تاریخ به صورت شمسی در gridview



صنم
پنج شنبه 17 مرداد 1387, 12:27 عصر
سلام
یک سوال در مورد gridview دارم.
من یک جدول در sql server دارم که مقادیری را از کاربر دریافت کرده و در جدول ذخیره می کنم که یکی از این اطلاعات تاریخ میباشد . من تاریخ را به صورت شمسی از کاربر می گیرم و به صورت میلادی در دیتابیس ذخیره می کنم .
حالا برای ویرایش ، داده های جدول را در یک gridview نمایش می دهم که تاریخ به صورت میلادی نمایش داده می شود . می خواستم بدونم چه جوری موقع ایجاد سطرهای gridview و نمایش مقادیر در سطرها ، تاریخ میلادی را به شمسی تبدیل کنم و به کاربر نشان دهم ؟
(برنامه تحت وب بوده و با c# , asp.net .)
با تشکر

Amir Taghavi
پنج شنبه 17 مرداد 1387, 12:41 عصر
همون کاری رو که واسه save تو db کردی، برعکسشو انجام بده!

اینکا رو تو RowDataBound انجام بده.

amir.net
پنج شنبه 17 مرداد 1387, 12:48 عصر
شماميتونيد اين تبديل رو در يك view كه توي بانك تعريف ميكنيدانجام بدين و بعد خروجي ويو رو به گريد بدين.
ولي اگه به تاريخ ميلادي نياز ندارين به شكل شمسي ذخيره كنيد و بعد راحت استفاده كنيد (بدون نياز به تبديل)

صنم
پنج شنبه 17 مرداد 1387, 13:09 عصر
من با استفاده از این کد در GridView1_RowDataBound می خوام که اول تاریخ میلادی موجود در دیتابیس را که در gridview ریخته می شود بخوانم و بعد به تاریخ شمسی تبدیل کرده و به کاربر نشان دهم . ولی مقدار این فیلد را خالی نشان می دهد . چرا؟


if (e.Row.RowType == DataControlRowType.DataRow)
{
string t1=e.Row.Cells[4].Text; //مقدار تاریخ میلادی که خالی نشان داده می شود

تبدیل به تاریخ شمسی
}

Amir Taghavi
پنج شنبه 17 مرداد 1387, 13:55 عصر
1. از TemplateField استفاده نکردی؟
2. ایندکس cell درسته؟ (یادت باشه index از 0 شروع میشه)

mostafa_sgh
پنج شنبه 17 مرداد 1387, 19:06 عصر
سلام دوست عزیز

* با احترام به نظر دوستان

شما برای این کار می تونی از این روش استفاده کنی :

ابتدا یک فانکشن بازگشتی از نوع String و دارای یک پارامتر از نوع Object تعریف کن .

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

مانند کد زیر :


<span lang="fa">
<%#PersianDate(Eval("Date")) %>
</span>



public string PersianDate(object date)
{
string persian;
DateTime dt = (DateTime)date;
persian = // Do Covert Date
return persian;
}