PDA

View Full Version : تشخیص در DataGrid



Boo Ali
سه شنبه 24 خرداد 1384, 11:17 صبح
چگونه می توان در نمایش DataGrid وقتی مثلا متغیری مقدار یک دارد را ار بانک بخواند

ولی بجای آن مقداری را که ما می خواهیم نمایش دهد مثلا بجای یک عبارت "فعال" و

بجای صفر عبارت "غیر فعال" را نمایش دهد ؟

یاشار
سه شنبه 24 خرداد 1384, 16:58 عصر
من هم چند وقت پیش با مشکل مشابهی مواجه شدم، با یه کم جستجو به این نتیجه رسیدم که مسئله بغرنج‌تر از اونیه که فکرش رو می‌کردم. بالاخره با هر بدبختی بود سرو ته قضیه رو هم آوردم ولی باز هم دقیقا اون چیزی که می‌خواستم نشد.

اول از همه به یک TableStyle جدید برای دیتاگرید احتیاج داریم که MappingName اون رو برابر نام جدولی که می‌خواهیم نمایش بدیم میذاریم. بعد برای این TableStyle باید چند تا DataGridTextBoxColumn تعریف کنیم، که به جای این کار از کلاس دیگه‌ای استفاده می‌کنیم که بتونیم بر اساس مقدار تک تک سلول‌ها ، مقدار جدیدی رو نمایش بدیم. این کلاس رو از اینجا (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwinforms/html/wnf_CustDataGrid.asp) گرفتم. خود این کلاس اجازه تغییر دادن مقدار سلول رو نمی‌داد که با اضافه کردن یک Property به نام DisplayValue اون مشکل هم برطرف شد.

مشکل بعدی این بود که با کلیک کردن روی Header ستون‌ها، دریف‌ها بر اساس اون ستون مرتب می‌شد که باعث به هم ریختن ترتیب مقادیر جایگزین می‌شد که اون هم با استفاده از یک Dataview و DataRowView حل شد.

فقط یک مشکل باقی مونده اون هم اینه که وقتی روی هر کدوم از سلول‌ها کلیک می‌کنید، مقدار اصلی رو نشون میده. این یکی رو دیگه از پسش بر نیومدم. اگر شما راهی براش پیدا کردید یا اینکه کلا راه حل ساده‌تری به نظرتون رسید، من رو هم بی نصیب نگذارید. خودم خیلی لازمش دارم.