PDA

View Full Version : سوال درباره استفاده از Image در گرید ویو یا دیتا لیست



liliyan87
سه شنبه 03 شهریور 1388, 06:39 صبح
سلام من میخوام وقتی در یه گرید ویو یا دیتا لیست از Image استفاده میکنم اگه یه رکورد تصویر نداشت به جای تصویر ضربدر قرمز نشون نده و این کد ها رو براش گذاشتم


protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
DataRowView row;
Image img;
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
row = (DataRowView)e.Item.DataItem;
if(row["PictureURL"].ToString().Trim()=="")
{
img = (Image)e.Item.FindControl("NewsImages");
img.Visible = false;
}
}
}

ولی وقتی اجرا میشه این error میده:

Object reference not set to an instance of an object.

منظورشو و متوجه نمیشم به نظر شما ایراد کجاست؟
من مشابه این کد رو با VB نوشتم بدون هیچ ایرادی اجرا شد ولی با سی شارپ این error میده؟:متفکر:

Milad Mohseny
سه شنبه 03 شهریور 1388, 09:15 صبح
ببین اینا بهت کمکی میکنه؟
http://www.codeproject.com/KB/grid/ImagePreviewDataGridView.aspx
http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/9c2deb0d-5ed9-4d85-9345-930514c21fb4

mahdigolzari
سه شنبه 03 شهریور 1388, 09:39 صبح
گریدت وقتی در حالت Edit هست روی Event دیتا باند Image کلیک کن و کد زیر رو براش بنویس:

Image objImage = (Image)sender;

حالا یک Instance از Image داری و میتونی هر جور که میخوای باهاش رفتار کنی

liliyan87
سه شنبه 03 شهریور 1388, 18:50 عصر
گریدت وقتی در حالت Edit هست روی Event دیتا باند Image کلیک کن و کد زیر رو براش بنویس:

Image objImage = (Image)sender;

حالا یک Instance از Image داری و میتونی هر جور که میخوای باهاش رفتار کنی


این کار و انجام دادم ولی بازم
img.Visible = false; انتخاب میکنه و همون error بالا رو میده .

liliyan87
چهارشنبه 04 شهریور 1388, 17:28 عصر
کسی نمیتونه منو راهنمایی کنه ؟ دوستان اگه کسی هست که تا الان به این مشکل برخورده خواهش میکنم دریغ نکنید و راهنماییم کنید.:ناراحت:

rezaiy.ali
چهارشنبه 04 شهریور 1388, 18:21 عصر
سلام
این که کاری نداره - شما زمانی که عمل درج رو انجام میدی بررسی کن ببین که کاربر عکس برای رکورد انتخاب کرده یا نه اگر انتخاب کرده بود که هیچی ولی اگر انتخاب نکرده بود مسیر یه عکسی که میخوای نمایش داده بشه رو در بانک ذخیره کن


~/Image/None.gif

liliyan87
پنج شنبه 05 شهریور 1388, 06:39 صبح
سلام
این که کاری نداره - شما زمانی که عمل درج رو انجام میدی بررسی کن ببین که کاربر عکس برای رکورد انتخاب کرده یا نه اگر انتخاب کرده بود که هیچی ولی اگر انتخاب نکرده بود مسیر یه عکسی که میخوای نمایش داده بشه رو در بانک ذخیره کن


~/Image/None.gif


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

liliyan87
پنج شنبه 05 شهریور 1388, 07:15 صبح
اینم خطای که میده:


NullRefrenceException Was unhandled by user Code


Object reference not set to an instance of an object.

Use the "new" keyword to create an object instance.

check to determine if the object is null before calling method.

compute87
پنج شنبه 05 شهریور 1388, 12:57 عصر
با سلام
توی اروری که نوشتید میگه new نکردید پس dataviewrow رو واسش new کنید.
ودر دستور if تون به جای گرفتن image وبعد invisible کردنش کد زیر رو بنویسید ببینید درست می شه.


GridView2.Rows[index[count]].Cells[0].Visible = false;


امیدوارم درست شه.اندیس ردیفتون رو بدید جلوی row و شماره ستونتون رو بدید جلوی cells.

liliyan87
پنج شنبه 05 شهریور 1388, 17:38 عصر
با سلام
توی اروری که نوشتید میگه new نکردید پس dataviewrow رو واسش new کنید.
ودر دستور if تون به جای گرفتن image وبعد invisible کردنش کد زیر رو بنویسید ببینید درست می شه.


GridView2.Rows[index[count]].Cells[0].Visible = false;


امیدوارم درست شه.اندیس ردیفتون رو بدید جلوی row و شماره ستونتون رو بدید جلوی cells.



سلام ، مرسی ولی نمیشه که واسه dataviewrow ،
new بسازم و این کدی که نوشتید واسه dataList نمیشه استفاده کرد من dataList دارم

compute87
پنج شنبه 05 شهریور 1388, 22:20 عصر
با سلام
در مورده datarowview نمیدونم و با توجه به اروری که داده گفتم.
اما در مورده gridview شما در بالای صفحه گفته بودید gridview یا datalist واسه همین منم اونی رو که بلد بودم گذاشتم.
موفق باشید.:لبخندساده::لبخندساده :

liliyan87
جمعه 06 شهریور 1388, 00:10 صبح
مرسی دوست عزیز
من همچنان به راهنمایی نیاز دارم:افسرده: