PDA

View Full Version : مشکل در تغییر مقادیر یک ستون از نوع date در datagrid ...



lomir
چهارشنبه 20 خرداد 1383, 02:37 صبح
سلام من یک مشکله کوچکی با این datagrid دارم .....
من یک database دارم که یکی از فیلد های آن از نوع date می باشد
چون مقدار فیلد date تاریخ مییلادی رو ذخیره کرده...می خوام با یک تابع تبدیل تاریخ میلادی به شمسی از این فیلد date به صورت شمسی در datagird استفاده کنم ......من هر کاری که به نظرم آومد انجام دادم ولی همیشه یک خطا ی می گرفت
من می خوام بدونم چطور می شه از این تابع تبدیل تاریخ در نمایش داده ان در Data grid استفاده کرد ...
از دوستان عزیز خواهش می کنم اگر را حل این موضع رو می دونند منو راهنمای کنند .....با تشکر قاسم :)

Farhad.B.S
چهارشنبه 20 خرداد 1383, 08:16 صبح
در دیتا گرید یک Template Column تعریف کنید و در داخل اون از تابع مورد نظرتون استفاده کنید :


<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<%# YourFunction(DataBinder.Eval(Container.DataItem, "ColumnName")) %>
</ItemTemplate>
</asp:TemplateColumn>
<Columns>

lomir
پنج شنبه 21 خرداد 1383, 12:59 عصر
دوست عزیز از کمکی که کردی خیلی ممنون کدی که دادی جواب داد ... :)
ولی یک مسئله دیگری که هست من function رو در یک ماژول قرار داده بودم که هر موقع که لازم باشه اونو صدا بزنم .....
کدی که شما معرفی کردین در سورس aspx باید قرار بدم و با این حساب اگر بخوام function رو صدا بزنم قادر به پیدا
کردن تابع نیست و مجبورم تابع رو در همنون فایل aspx در بین <tage <script runat="sever"></script تعریف بکنم
که معتبر بشه ... که همون طور که می دونی راه حل خوبی نیست که یک function دهها بار در page های دیگر بیام تعریف بکنیم آیا راهی بر ای این موضع داری ....

و بعد اگر بخوام تابع تبدیل تاریخ رو به یک DropDownList تخصص بدم چگونه با حساب موضع قبلی !!! این امر ممکنه
----------
بازم تشکر می کنم بخاطر راهنمائی که کردی :) موفق باشی :)

Farhad.B.S
جمعه 22 خرداد 1383, 20:15 عصر
راه حل ساده ای داره ، یک User Control ایجاد کنید و بعد داخل اون این محاسبات رو انجام بدید .
سپس این یوزر کنترل رو داخل یکی از ستون های دیتاگرید قرار بدید.

lomir
شنبه 23 خرداد 1383, 09:31 صبح
نه منظورم اینه که می خوام فیلد date رو جدا به یک DropDownList در page تخصیص بدم بدونه data grid و بعد با function
تبدیل تاریخ اونو تغییر بدم ..... من فقط نمی دو نم چطور این function تبدیل رو در این مورد بکار ببرم ((( DropDownList تنها))))

Farhad.B.S
شنبه 23 خرداد 1383, 19:15 عصر
نه منظورم اینه که می خوام فد date رو جدا به یک DropDownList در page تخصیص بدم
صحبت من در رابطه با مشکل اولتون بود ، این که چطور از یه تابع عمومی در تمامی صفحات استفاده کنید.

در مورد دراپ داون ها :
یه راهش اینه که دراپ داون رو بایند نکنید ، بلکه در یک حلقه و توسط یک Data Reader رکورد ها رو تک به تک بخونید ، سپس عملیات لازم جهت تبدیل رو بر روی هر رکورد انجام بدید ، و در آخر این رکورد رو به دراپ داون اضافه کنید.
راه دیگش اینه که عملیات تبدیل تاریخ رو در کد SQL تون انجام بدید ، یعنی یه تابع داخلی SQL ، برای این کار داشته باشید .
در این صورت میتونید از بایندینگ به صورت معمول استفاده کنید :

SELECT dbo.GetFarsiDate(DateColumn) AS FDate FROM ...

lomir
یک شنبه 24 خرداد 1383, 16:47 عصر
می تونی سورس کاملتری از این راهنمای هات , send کنی ....
:) <یک مثال کامل .... برای هر دو موضع > :idea: