PDA

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



amirzazadeh
سه شنبه 11 تیر 1387, 10:03 صبح
دوستان چطوري ميتونم تاريخ هاي ميلادي رو موقع ريختن تو ديتاگريد ويو به صورت شمسي نشون بدم.

yavari
سه شنبه 11 تیر 1387, 10:19 صبح
سلام

قبل از اینکه گرید رو با دیتا تیبلت پر کنی اونو اینجوری تغییر بده


For i As Integer = 0 To dt.Rows.Count - 1
dt.Rows(i).Item(2) = Miladi2Shamsi(dt.Rows(i).Item(2).ToString) & " " & Mid(dt.Rows(i).Item(2).ToString, 11, Len(dt.Rows(i).Item(2).ToString))
Next
بعد دیتا تیبل رو بده سورس گریدت .
اینم فانکشن تبدیل تاریخ

Private Function Miladi2Shamsi(ByVal txtdate As String) As String
Dim aa As New System.Globalization.PersianCalendar
Miladi2Shamsi = aa.GetYear(txtdate) & "/" & aa.GetMonth(txtdate) & "/" & aa.GetDayOfMonth(txtdate)
End Function

امیدوارم راهگشا باشه

موفق باشید

amirzazadeh
سه شنبه 11 تیر 1387, 10:45 صبح
دوست من اين كدو تو كدوم رويداد بنويسم.

yavari
سه شنبه 11 تیر 1387, 12:53 عصر
دوست من اين كدو تو كدوم رويداد بنويسم.

سلام

درست همونجا که میخواین به گریدتون دیتاسورس بدید .
قبل از اون دیتاتیبل رو ویرایش کنید بعد بدین دیتا سورس گرید .

موفق باشید

amirzazadeh
چهارشنبه 12 تیر 1387, 09:00 صبح
با تشكر از شما مشكل من با اين كد حل شد.

Private Sub DGV1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEve ntArgs) Handles DGV1.CellFormatting
If (e.ColumnIndex = 7 Or e.ColumnIndex = 8) Then

e.Value = PersianToolsPack.PersianDate.ToShamsi(e.Value).sho rtDate

End If
columnsindex فيلد حاوي تاريخ ميلاديه.