ورود

View Full Version : سوال: چطور میتوانم مشخصات یکی لینک باتن درون گرید ویو را در پیج لود تغییر دهم؟



Hess_r
جمعه 12 فروردین 1390, 19:26 عصر
با سلام

فک کنم سوالم از عنوان مشخص باشه.

میخوام در پیج لود یه کنترل لینک باتن که در گرید ویو هست رو ویزیبل کنم اگه هی شرط رخ داد ولی بهش دست پیدا نمیکنم هر کاری میکنم

از چه کدی باید استفاده کنم؟

Hess_r
جمعه 12 فروردین 1390, 19:59 عصر
البته از این کد هم استفاده کردم ولی ارور داد:


((LinkButton)GridView1.FindControl("LinkButton6")).Visible = false;

dontspeak
جمعه 12 فروردین 1390, 23:55 عصر
این کد آماده که داشتم خودت به جای checkbox هرچی خواستی بزار البته سی شارپه
CheckBox cb = (CheckBox)cellMarkFlag.Controls[0];
if (cb.Checked)
{
e.Row.Cells[2].ForeColor = System.Drawing.Color.Red;
}

karim orooji
شنبه 13 فروردین 1390, 00:04 صبح
سلام
كدت رو به اين صورت بنويس


Dim lb As LinkButton = grid_row.FindControl("LinkButton1")

karim orooji
شنبه 13 فروردین 1390, 00:08 صبح
میگم من چیزی از این نفهمیدم یه کم بیشتر اگه راهنمایی کنین ممنون میشم
سلام يك متغير از نوع LinkButton اسمش هست lb حالا شرط رو اجرا كني
كد نويسي شو انجام بدي

Hess_r
شنبه 13 فروردین 1390, 00:13 صبح
دونت اسپیک جان از کد شما متاسفانه چیزی نفهمیدم اگه ممکنه بیشتر توضیح بده.

کریم جان کد شما رو هم خودم تست کرده بودم جواب نمیده...یعنی اول اون متغیر لینک باتن ایجاد میشه ولی بعد که میخوام ویزیبلش رو تغییر بدم ارور nullrefrenceexeption(ovject refrence not set to an instance of an object.) میده دقیقا مثل همون کدی که خودم نوشتم.

اینم بگم که من این لینک باتن رو تو اون گرید ویو دارم و مطمئنم از اون بابت اشتباهی نکردم.

karim orooji
شنبه 13 فروردین 1390, 17:46 عصر
سلام
برنامه رو ضميمه كن
تا ببينم چيكار كردي

clover
شنبه 13 فروردین 1390, 22:09 عصر
سلام
اون کنترلی که شما قصد دسترسی بهش را دارید در واقع وجود خارجی نداره و فقط یک تعریف هست که گرید ویو از اون استفاده می کنه تا نمونه های سطر را بسازه. در واقع اون کنترل در تک تک سطر ها نمونه سازی میشه و شما برای تغییر اون 2 راه دارید، یا باید ItemTemplate را از طریق کد ویرایش کنید و یا اینکه گرید ویو را پیمایش کنید و تک تک سطر ها را تغییر بدید.
یه عنوان یه راه ساده، روش دوم را پیشنهاد می کنم که به این شکل هست:

foreach (GridViewRow row in GridView1.Rows)
{
Control ctl = row.FindControl("LinkButton1");
if (ctl != null)
{
ctl.Visible = false;
}
}

البته همین کار را بدون foreach و در Event ها هم می تونید پیاده کنید که دوستمون dontspeak (http://barnamenevis.org/member.php?186905-dontspeak) از این روش استفاده کردن

راه دیگه هم این هست که اون ستون را کامل Visible کنید:

GridView1.Columns[1].Visible = false;

موفق باشید

Hess_r
شنبه 13 فروردین 1390, 23:52 عصر
آقا واقعا ممنونم دستت درد نکنه.

حالا میشه ازت یه سوال دیگه بپرسم؟؟؟به نظرت منطقی هست که من یه چنین کنترلی بسازم یوزر اگه کانکت شده بود و هویتش تست شد و بعد تو دیتابیس پرمیشن ادیت کردن رو داشت این لیبل که برای ویرایش هست براش نمایش داده بشه؟؟؟؟ یا راه دیگه ای رو استفاده کنم که بهتر باشه؟

clover
یک شنبه 14 فروردین 1390, 20:35 عصر
آقا واقعا ممنونم دستت درد نکنه
خواهش می کنم


به نظرت منطقی هست که من یه چنین کنترلی بسازم یوزر اگه کانکت شده بود و هویتش تست شد و بعد تو دیتابیس پرمیشن ادیت کردن رو داشت این لیبل که برای ویرایش هست براش نمایش داده بشه؟؟؟؟
من تو مباحث امنیت تا این حد تجربه ندارم و از راه های ساده تری مثل محدود کردن دسترسی به صفحات برای کاربران و نقش های خاص استفاده می کنم. در این مورد دوستانی که تجربه بیشتری دارند میتونن کمک کنن.