PDA

View Full Version : بجای مقادیر True و False که در GridView نمایش داده میشود عکس بزارم



rahele_sa
جمعه 15 اردیبهشت 1385, 19:40 عصر
سلام

من با ASP.NET محیط Visual Basic 2005 کار میکنم

من یکسری رکورد ها را از بانک SQL میخوانم

و بعد در یک GridView نمایش میدهم

جدولی که تو GridView نمایش داده میشه شامل سه فیلد است (Name,Famil,State)

نوع فیلد State از نوع Boolean است .

پس مقدار هایی که میگیره فقط از True و False است

حالا من می خواهم بجای نمایش True یا False در سطرهای GridView دو تا عکس نمایش داده شود

به طور مثال برای True عکس تیک
و برای False عکس ضربدر

من یا SqlDataSource به بانک اطلاعاتیم تو SQL وصل شدم
و GridView را مستقیما به کنترل 1 SqlDataSourceوصل کردم


(اینم بگم که من جستجو کردم ولی چیزهایی که پیدا کردم همش واسه 2003 بود)

rahele_sa
دوشنبه 18 اردیبهشت 1385, 13:27 عصر
چرا هیچکس 2005 کار نکرده

چرا کمک نمی کنید

reza_rad
سه شنبه 19 اردیبهشت 1385, 07:15 صبح
از imagefield استفاده کنید
و دیتا فیلدش رو تنظیم کنید.
عکسی رو که می خواهید جای true باشه با نام true و بدون پسوند در دایرکتوری اصلی برنامه توی کپی کنید و همینطور برای false

rahele_sa
چهارشنبه 20 اردیبهشت 1385, 10:34 صبح
جای تعجبه
من رفتم 2 تا عکس که یکیش عکس تیک بود و دیگریش عکس ضربدر بود کپی کردم در پوشه پروژه ام
بعد رفتم به GridView ام یک فیلد از نوع ImageField اضافه کردم بعد خصوصیت DataImageUrlField این فیلد را به نام فیلد State که از نوع boolean است قرار دادم .

در آخر پروژه را اجرا کردم (دیدم به جای مقادیر True عکس تیک و به جای مقادیر False عکس ضربدر دیدم)

ببینید آقای راد این روشی که شما گفتید فقط برای یک فیلد Boolean است که می خواستم بجاشون عکس تیک و ضربدر بزارم

ولی من یک فیلد دیگه ام دارم به نام Locked که می خواهم این دفعه بجای True یا False یه عکس دیگه نشون بده ؟ مثل یک عکس قفل باز و قفل بسته

تظیم ImageField چند تا خصوصیت داره (که من نمی دونم کدومش را تنظیم کنم)
این خصوصیت ها را داره

nazaninam
چهارشنبه 20 اردیبهشت 1385, 12:46 عصر
اگه حالت های شما از boolean خارج میشه یک فیلد از نوع tiny int در بانک بسازید
مقدار 1 را برای حالت true مقدار 2 برای حالت false و مقدار 3 برای حالت locked قرار بدید
حالا سه تاعکس با این نام ها تو پویشه بسازید...
موفق باشید

rahele_sa
چهارشنبه 20 اردیبهشت 1385, 16:12 عصر
یعنی هیچ راهی دیگه ای نداره

Arminizer_88
چهارشنبه 20 اردیبهشت 1385, 16:34 عصر
سلام

ببینم چرا تمام کسایی که 2005 کار میکنن لذت کد نویسی رو فراموش میکنن. rahele ج.ن بجای اینکه DataGrid ات رو با SqlDataSource و کنترل های مشابه ایجاد کنی، با کد اطلاعهات رو بخون و انتقال بده. در این صورت روی کد ها و رکورد ها کنترل کامل تری داری. بعد میتونی با چند تا شرط کوچیک و ساده از عکس استفاده کنی. ولی مسلما کمی سرعت بازیابی رو پایین میاره. راه بهتر اینه که موقع دخیره کردن رکورد ها به اذای مقادی مورد نظر همون جا عکس مورد نظر رو جایگزین کنی که برای این کار هم توی SQLServer باید از فیل های نوع ImageField استفاده کنی. اگر باز هم مشکل داشتی برات نمونه کد میذارم.

</I Refused To Be Grown Down By You>

rahele_sa
چهارشنبه 20 اردیبهشت 1385, 18:40 عصر
دوست من شما آمدید را خیلی سختی را پیشنهاد می کنید

rahele_sa
سه شنبه 26 اردیبهشت 1385, 16:30 عصر
جای تعجبه
من رفتم 2 تا عکس که یکیش عکس تیک بود و دیگریش عکس ضربدر بود کپی کردم در پوشه پروژه ام
بعد رفتم به GridView ام یک فیلد از نوع ImageField اضافه کردم بعد خصوصیت DataImageUrlField این فیلد را به نام فیلد State که از نوع boolean است قرار دادم .

در آخر پروژه را اجرا کردم (دیدم به جای مقادیر True عکس تیک و به جای مقادیر False عکس ضربدر دیدم)

ببینید آقای راد این روشی که شما گفتید فقط برای یک فیلد Boolean است که می خواستم بجاشون عکس تیک و ضربدر بزارم

ولی من یک فیلد دیگه ام دارم به نام Locked که می خواهم این دفعه بجای True یا False یه عکس دیگه نشون بده ؟ مثل یک عکس قفل باز و قفل بسته

تظیم ImageField چند تا خصوصیت داره (که من نمی دونم کدومش را تنظیم کنم)
این خصوصیت ها را داره


این قسمتی که گفتم را یکی تکمیل کنه
با تشکر !

shahroozj
چهارشنبه 27 اردیبهشت 1385, 08:41 صبح
راه حلی که nazaninam پیشنهاد داده اند کاملا منطقی به نظر می رسد
مثل اینکه شما مخالف کد نویسی هستید :متفکر:

endofcsharp
جمعه 29 اردیبهشت 1385, 11:10 صبح
من هم یک چنین مشکلی دارم

حالا حتی اگه به نظر دوست عزیزمان از کد نویسی استفاده کنیم ، مثلا از sqlDataCommand و بوسله یک Data Reader اطلاعات را بخوانیم ، سپس درون یک datatTable قرار دهیم ، این جاست که مشکل پیش می آید.

فرض کنید میخواهیم یک عکس نمایش داده شود ، اگر از تگ img استفاده کنیم ، هنگامی که datatable را به Gridview بایند میکنیم ، به جای نمایش عکس ، خود تگ img نمایش میابد

کلا در این حالت ، تگ ها تفسیر نمیشوند.

حالا چیکار کنیم ؟

rahele_sa
جمعه 05 خرداد 1385, 10:16 صبح
من تو یک جا دیدک که از روش nazaninam استفاده نکرده

و تمام فیلد هایش از نوع bit است !!

rahele_sa
دوشنبه 22 خرداد 1385, 09:33 صبح
بخدا راهی داره من می دانم
هیچکس بلد نیست

msakbari
سه شنبه 23 خرداد 1385, 00:32 صبح
سرکار خانم خوبه که خودم بهتون با پیام خصوصی گفتم خواهش می کنم واسه این دوستان افه
نزارین و متن کدی که واسطون نوشتم رو بنویسید نا همه استفاده کنند .

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

مرسی .

rahele_sa
سه شنبه 23 خرداد 1385, 08:31 صبح
آقای msakbari کدی که شما گفتید واسه عکس گذاشتن بر روی ButtonField است !

من در این تایپیک می خواهم واسه ImageField‌ها عکس بزارم

اما نه از روشهایی که بالایی ها گفتند

از روش خود شما (مثل ButtonField)

ممنون از شما

rahele_sa
سه شنبه 23 خرداد 1385, 11:14 صبح
از imagefield استفاده کنید
و دیتا فیلدش رو تنظیم کنید.
عکسی رو که می خواهید جای true باشه با نام true و بدون پسوند در دایرکتوری اصلی برنامه توی کپی کنید و همینطور برای false

ببینید من 4 تا فیلد از نوع Bit در GridView دارم

نمی توانم از روش بالا که آقای راد گفتن استفاده کنم

اگر 1 فیلد بود آره اما 4 تا فیلد را نمی توان از این روش استفاده کرد

شاید با خودتون بگید که (چرا نوع فیلد ها را عوض نمی کنم)
جوابم اینکه (متاسفانه تعداد رکورد ها خیلی می باشد و در صورت تغییر برنامه کاربردی تحت ویندوز هم باید تغییر کند (خلاصه درد سره))

والا ، بلا ،
من تو یک پروژه دیدم که اینجوری که آقای راد میگن استفاده نکرده

msakbari
سه شنبه 23 خرداد 1385, 14:56 عصر
منم همین رو گفتم .. لطفا واسه بچه ها کد رو بزارین.

rahele_sa
سه شنبه 23 خرداد 1385, 15:33 عصر
If e.Row.RowType = DataControlRowType.DataRow Then

Dim IMG As ImageButton = e.Row.Cells(6).Controls(0)

If IMG.AlternateText = "0" Then
IMG.ImageUrl = "~/Image/Wave.Gif"
Else
IMG.ImageUrl = "~/Image/Fax.Gif"
End If

End If


این کد واسه عکس گذاشتن برای ButtonField است

اگه خوب دقت کنید مشاهده میکنید که مسیر فایل عکس هم آمده

من در واقع برای ImageField ها هم همین جوری می خواهم

msakbari
چهارشنبه 24 خرداد 1385, 16:39 عصر
با استفاده از همین روش خیلی راحت میشه این کار رو انجام داد .
البته آیه هم نیومده که از ImageField استفاده کنی .

شما حتی می تونی از یه BoundColumn استفاده کنی که در زمان اجرا در همین روال یک تک IMG رو در اون ستون قرار بده . اینا راحت روشهایی است برای این کار ..


مرسی

rahele_sa
پنج شنبه 25 خرداد 1385, 09:49 صبح
میشه کدش را بنویسید

والا دیگه گیج شدم

rahele_sa
پنج شنبه 15 تیر 1385, 16:47 عصر
If e.Row.RowType = DataControlRowType.DataRow Then

Dim IMG As ImageButton = e.Row.Cells(6).Controls(0)

If IMG.AlternateText = "0" Then
IMG.ImageUrl = "~/Image/Wave.Gif"
Else
IMG.ImageUrl = "~/Image/Fax.Gif"
End If

End If


این کد واسه عکس گذاشتن برای ButtonField است

اگه خوب دقت کنید مشاهده میکنید که مسیر فایل عکس هم آمده

من در واقع برای ImageField ها هم همین جوری می خواهم

چرا کسی کمک نمیکنه

اگر با یک تغییر مشکل حل میشه
چرا پس نمی گید ؟

Behrouz_Rad
شنبه 17 تیر 1385, 20:58 عصر
اگر به همین منوال به ارسال آف تاپیک در سایت ادامه بدی، تصمیمی جدی در موردت گرفته میشه.