PDA

View Full Version : سوال: مشکل در مخفی کردن ستون گرید ویو در زمان اجرا



zahrashoja
چهارشنبه 11 مرداد 1391, 21:54 عصر
چند تا تاپیک در این باره دیدم ولی هیچکدوم جوابی که داده بودن موثر نبود
کدم اینه:


IQueryable q = cn.selectfromnews(idn: idfor);
GridView1.DataSource = q;
GridView1.DataBind();
GridView1.Columns[2].Visible = false;



GridView1.Columns[2].Visible = false
اینجا خطا می گیره که:Index was out of range

meisam12
چهارشنبه 11 مرداد 1391, 23:29 عصر
سلام دوست عزیز
از این کد استفاده کن. این کد نام ستون را چک می کند اگر درست بود مخفی می کند. من این کد را تست کردم جواب داد:کف:

foreach (DataControlField col in GridView1.Columns)
{
if (col.HeaderText.ToLower() == "productid")
{
col.Visible = false;
}
}



چند تا تاپیک در این باره دیدم ولی هیچکدوم جوابی که داده بودن موثر نبود
کدم اینه:


IQueryable q = cn.selectfromnews(idn: idfor);
GridView1.DataSource = q;
GridView1.DataBind();
GridView1.Columns[2].Visible = false;



GridView1.Columns[2].Visible = false
اینجا خطا می گیره که:Index was out of range

meisam12
چهارشنبه 11 مرداد 1391, 23:52 عصر
البته اگر منظورتون مخفی کردن سلول گرید ویو می باشد می توانید به لینک زیر مراجعه کنید.
http://www.codeproject.com/Articles/19501/How-to-Hide-GridView-Cloumn-Cell-and-how-retrive-v

zahrashoja
چهارشنبه 11 مرداد 1391, 23:53 عصر
سلام دوست عزیز
از این کد استفاده کن. این کد نام ستون را چک می کند اگر درست بود مخفی می کند. من این کد را تست کردم جواب داد:کف:

foreach (DataControlField col in GridView1.Columns)
{
if (col.HeaderText.ToLower() == "productid")
{
col.Visible = false;
}
}


نشد:( مخفی نمیشه

meisam12
پنج شنبه 12 مرداد 1391, 00:23 صبح
من امتحان کردم و یک ستون گرید ویو کاملاً مخفی شد

نشد:( مخفی نمیشه

zahrashoja
پنج شنبه 12 مرداد 1391, 09:22 صبح
من امتحان کردم و یک ستون گرید ویو کاملاً مخفی شد
من هم امتحان کردم و مخفی نشد
شاید چون گرید ویوی من رو در زمان اجرا مقدار دیتا سورسش تعیین میشه اینطوریه
نمی دونم چکار کنم؟؟؟؟؟؟؟؟؟؟

mohsen_f_b
پنج شنبه 12 مرداد 1391, 09:57 صبح
سلام

دوست عزیز برای مخفی کردن ستون گرید همون کدی که شما نوشتی درسته، فقط نکته ای داره اونم اینکه شمارش ستون شما از صفر شروع می شود. اگر 2 تا ستون دارید و می خواهید ستون دوم را حذف کنید باید GridView1.Columns[1].Visible = false; را بنویسید.

موفق باشید

mohsen.nsb44
پنج شنبه 12 مرداد 1391, 09:58 صبح
دوست عزیز وقتی میگید
اینجا خطا می گیره که:Index was out of range
یعنی اینکه ستونی که شما در نظر گرفتید(شماره ستون) خارج از محدوده ستون های گریدویو شماست
شماره ستون ها از صفر شروع میشه نه از یک

zahrashoja
پنج شنبه 12 مرداد 1391, 10:09 صبح
خودم پیداش کردم :)

اگه auto generate colume=true باشه باید اینکارو کرد:




GridView1.HeaderRow.Cells[2].Visible = false;
foreach (GridViewRow gvr in GridView1.Rows)
{
gvr.Cells[2].Visible = false;
}



ضمنن من جمعن چهار تا ستون دارم یکی از نوع هایپر لینکه که به گرید ویو اضافش کرده بودم و سه تای دیگه با دیتا سورس بهش دادم!

Fartaj
پنج شنبه 12 مرداد 1391, 19:56 عصر
یعنی تو حالت template نمی شه اینکا رو کرد ؟؟

من می خوام براساس نقش کاربر ستون حذف رکورد رو بردارم این کدهای اینجا رو هم تست کردم اما کلا مخفی می شه ؟؟