PDA

View Full Version : سوال: سوالي در مرود GridViews؟



alireza_rashvand
سه شنبه 18 بهمن 1390, 12:59 عصر
سلام
سريع مي روم سر سوالم تا وقت دوستان گرفته نشود.
من از گريد ويو براي نمايش اطلاعات استفاده مي كنم.
1-مي خواهم اگر داده اي مثلا فلان فيلدش كه نوعش از bool است True بود به جاي اينكه ان به صورت چكباكس تيك خورده نمايش داده شود يك عكس براي ان مشخص كنم .
2- و اگر True بود سطر مورد نظر رنگش تغيير كند .
ايا راحي براي ان است .
من داده ها را مستقيم از خود ديتا بيس مي گيرم.
با سپاس از همه دوستان كه ياريم مي كنند.
البته سوال اولم بسيار مهم تر از سوال دوم است .

aliyeh
سه شنبه 18 بهمن 1390, 14:53 عصر
1- برای این مورد فکر کنم بهتره یک templatefield تعریف کنید و در اون عکس مورد نظرتون رو قرار بدید و در قسمت databinding مقدار visible اون عکس را برابر با مقدار فیلد بولین قرار بدید.
2- در خاصیت RowDataBound گریدویو مقدار فیلد رو بخونید و از شرط زیر استفده کنید:
if(status)
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='White'");

alireza_rashvand
سه شنبه 18 بهمن 1390, 15:05 عصر
سلام خدمت شما
کمک 1 تان بسیار خوب بود هنوز امتحان نکردم ولی فکر می کنم همینه.
ولی سوال 2 این جوابش نیست شما با این دستور سطری که موس رو ان می اید را تغییر می دهید منظورم این است:
در سوال قبل گفتم اگر مقدار True بود عکس عوض شود حال می گویم بجای اینکه عکس عوض شود رنگ سطر عوض شود من هر دو مرود را می خواهم تست کنم البته با کمک شما اولی حل می شود ولی برای دومی چه پیش نهادی می دهید ؟

aliyeh
سه شنبه 18 بهمن 1390, 15:09 عصر
سلام خدمت شما
کمک 1 تان بسیار خوب بود هنوز امتحان نکردم ولی فکر می کنم همینه.
ولی سوال 2 این جوابش نیست شما با این دستور سطری که موس رو ان می اید را تغییر می دهید منظورم این است:
در سوال قبل گفتم اگر مقدار True بود عکس عوض شود حال می گویم بجای اینکه عکس عوض شود رنگ سطر عوض شود من هر دو مرود را می خواهم تست کنم البته با کمک شما اولی حل می شود ولی برای دومی چه پیش نهادی می دهید ؟

:لبخند:
بله ، درسته در واقع من باید این خط رو می نوشتم:
e.Row.BackColor = Color.FromName("#ff0000");

alireza_rashvand
سه شنبه 18 بهمن 1390, 15:21 عصر
سپاس از شما
یک سوال دیگر هم داشتم البته ببخشید که وقت شما را زیاد گرفتم .
من ان ستون را اضافه کردم و عکس را نیز برای ان قرارا داده و کار هم کرد و کاملا درست بود مشکل اینجاست که چون من با select از دیتا بیس داده ها را در ون گریدویو قرار می دهم همان ستون نیز نمایش داده می شود منظورم فیلدی که مقدارش بولین بود . ایا می توان ان را نمایش نداد .
و دیگری اینکه ستون که من ایجاد می کنم دویمن ستون است ایا می توان ان را به انتها گرید ویو انتقال داد (توجه گرید ویو من در هنگام اجرا از دیتا بیس پر می شود اولین ستون ستون نتخاب سات و دومین ستون همین که شما گفتید و بغیه از دیتا بیس پر می شود )؟
بازهم تشکر

aliyeh
سه شنبه 18 بهمن 1390, 15:42 عصر
درسته که در زمان اجرا گرید رو پر می کنید ولی چون ستون هایی که می خواین نمایش داده بشه از الان مشخص هست می تونید در پنجره طراحی و در قسمت editcolumns گریدویو برید و تیک گزینه autogeneratefield رو بردارید و فیلدهایی که میخواین نمایش داده بشه رو خودتون به صورت دستی و با هر ترتیبی که موردنظرتون هست اضافه کنید.

alireza_rashvand
سه شنبه 18 بهمن 1390, 16:10 عصر
حرف شما زمانی درست است که من گریدویو را به صورت ویزاردی به دیتا بیس وصل کرده باشم در صورتی که من ان را با دستورات دیتابیس پر می کنم (stored
procedure ). در این حالت در قسمت editcolumns همان دوفیلدی که عرض کردم را نمایش می دهد.
راستی در مورد مخفی کردن یک ستون راه حلی نداری (در بالا کمی توضیح دادم )