PDA

View Full Version : یه سوال در موردDataGrid



bita_s
دوشنبه 09 شهریور 1383, 12:52 عصر
چطور می تونم رنگ سطر i ام از یه datagrid را عوض کنم؟

Vahid_Nasiri
دوشنبه 09 شهریور 1383, 13:56 عصر
دیتاگرید یک موجود شیء گرا است! شاید یکی از بهترین کنترل های ASP.NET باشد. هر ردیف آن با این بحث به سادگی قابل دسترسی و هر خاصیت آن هم قابل مقدار دهی است. برای مثال می توان فونت یک ردیف را tahoma و اندازه ی آنرا 10 نقطه و رنگ آنرا آبی و پشت زمینه آنرا زرد کرد! و یا حتی یک سلول خاص را...
یک مثال در این زمینه:
Conditional Formatting ASP.NET DataGrid Columns (http://www.codeproject.com/aspnet/gridcolumnformatting.asp)

bita_s
دوشنبه 09 شهریور 1383, 19:54 عصر
متاسفانه مشکل من حل نشد. :?
من دستور زیر را برای عوض کردن رنگ ستون i ام از Datagrid نوشتم و میخوام چیزی شبیه همین دستور را برای عوض کردن رنگ سطر i ام از اون بنویسم .


DataGridReg.Columns[i].ItemStyle.BackColor=Color.B lue;

Vahid_Nasiri
دوشنبه 09 شهریور 1383, 21:44 عصر
شما در چه هنگامی می خواهید این رنگ را عوض کنید؟
اگر هنگام بکارگیری رخدادهایی مانند ItemDataBound می خواهید اینکار را انجام دهید e.Item.BackColor را مقدار دهی کنید.

bita_s
سه شنبه 10 شهریور 1383, 09:49 صبح
کاری که من می خواهم بکنم به این صورت است که من با استفاده از یک ستون Data grid که چک باکس است چند تا از سطرهای Data grid را انتخاب کردم و از بین این سطرها ، اونهایی که یک attribute مشترک داشتند رو انتخاب کردم و الان می خوام رنگ اون سطرها رو عوض کنم تا کاربر متوجه شود که کدوم سطرها ، اون attribute خاصشون با هم مساویند.

( من یک قسمت از انتخاب واحد دانشجویان رو پیاده سازی می کنم که این ستون خاص مربوط به تاریخ امتحاتات است که نباید با هم مساوی باشند و در صورتی که دانشجو درسهایی را انتخاب کند که تاریخ امتحانشون با هم مساوی است باید آن سطرهای خاص با رنگ متمایز نمایش داده شوند.(

امیدوارم درست تونسته باشم منzورم رو بیان کنم. :roll: :?:

Vahid_Nasiri
سه شنبه 10 شهریور 1383, 20:54 عصر
سوال جالبی است! لطفا یک عکس از این دیتاگرید برای نمونه اینجا قرار بدهید تا بهتر بشود قضاوت کرد.

bita_s
چهارشنبه 11 شهریور 1383, 19:21 عصر
من هر کاری کردم نتونستم عکس Data Grid رو بذارم اینجا :?
ولی Data Grid من 6 تا ستون داره که Template column اند و شامل کد درس ، نام درس واحد ، نوع ، تاریخ امتحان و یک ستون به نام Select است که این ستون آخر Check box است
بعد از اینکه کاربر این Check box را کلیک کرد همون مواردی که در تاپیک بالا گفتم چک می شود
و می خوام اگه تاریخ 2 تا امنحان تداخل داشت ، رنگ این دو سطر i ام و j ام تغییر کند.

venus_zohreh
پنج شنبه 06 مهر 1385, 14:57 عصر
من دقیقا همین کار را کردم
برای این کار باید در رویداد RowCreated هر بار سطر آخری که ایجاد می شود را بررسی کنی و رنگ آن را تغییر دهی :

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{

if (GridView1.Rows.Count > 0)
if (GridView1.DataKeys[GridView1.Rows.Count - 1]["unread"].ToString() == true+"")
GridView1.Rows[GridView1.Rows.Count - 1].Font.Bold = true;

}
اون ستونی از دیتا گرید که باید چک بشه را قبلش باید در DataKeys دیتا گرید وارد کنی
برای مثال من ستون unread را می خواهم چک کنم و اگر مقدار آن true بود فونت آن سطر Bold شود

mahdi_negahi
پنج شنبه 06 مهر 1385, 15:03 عصر
عزیز جان به تاریخ و روز تاپیک توجه کن

venus_zohreh
پنج شنبه 06 مهر 1385, 19:26 عصر
خب هنوز کسی بهش جواب درست و حسابی نداده
بنده خدا هنوز جوابشو نگرفته!