PDA

View Full Version : invisible کردن image در خبرهایی که عکس ندارند



bahar_engineer
سه شنبه 24 شهریور 1388, 12:50 عصر
سلام

من یه سری خبر دارم که توی گرید ویو نمایش می دم این خبرها بعضی عکس دارن بعضی نه

و من در گریدویو یه کنترل image دارم که عکس ها رو نمایش می ده

چه تنظیماتی باید انجام بدم تا اگه خبر عکس نداشت دیگه image رو نمایش نده ... چون در حالت عادی اگه خبر عکس نداشته باشه یه image خالی با علامت ضربدر نمایش داده می شه



thx

ha-sa-gh
سه شنبه 24 شهریور 1388, 13:52 عصر
سلام
در شی image برای خاصیت imageurl مسیر عکس پیش فرض را انتخاب کنید (منظور عکسی که در صورت نداشتن خبر آن را نشان دهد می توانید این خاصیت را ست نکنید می تونی visible عکس رو هم تغییر بدی )زمانیکه از دیتا ریدر خوندی میگی if datareader.lenght>0 then imageurl="url"

bahar_engineer
سه شنبه 24 شهریور 1388, 14:17 عصر
ممنون بله این راه حل رو داشتم

می خواستم اصلا عکس نمایش نده که پیداش کردم

اینطوری تنظیم می کنیم



Eval("pic")==DBNull.Value ? false: true


:چشمک:

liliyan87
سه شنبه 24 شهریور 1388, 18:26 عصر
من قبلا یه همچین بحثی ایجاد کرده بودم البته خبرها را با استفاده از DataList نشون داده داده بودم و برای اینکه خبرهایی که تصویر ندارن image غیر فعال بشه و ضربدر قرمز نشون نده از این کد ها استفاده کردم.

DataRowView row;
Image img;
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
row = (DataRowView)e.Item.DataItem;
if(string.IsNullOrEmpty(row["PictureURL"].ToString().Trim()))
{
img = (Image)e.Item.FindControl("NewsImages");
img.Visible = false;

}
}
اینا رو توی رویداد ItemDataBound قرار دادم که البته با سی شارپ که امتحان کردم خطا داد ولی با VB بدون هیچی مشکل یجواب داد اینم بگم از جایی این کد ها رو برداشتم ابتکار خودم نبودن.

vb:

Dim row As DataRowView
Dim img As Image
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then

row = CType(e.Item.DataItem, DataRowView)

If row("PictureUrl").ToString().Trim() = "" Then
img = CType(e.Item.FindControl("NewsImage"), Image)
img.Visible = False
End If

End If

End Sub

liliyan87
سه شنبه 24 شهریور 1388, 18:44 عصر
ممنون بله این راه حل رو داشتم

می خواستم اصلا عکس نمایش نده که پیداش کردم

اینطوری تنظیم می کنیم



Eval("pic")==DBNull.Value ? false: true


:چشمک:


من به این صورت به کار بردم درسته؟


Eval("Image","~/ImageDB/{0}")==DBNull.Value ? false: true

ولی error میده


Operator '==' cannot be applied to operands of type 'string' and 'System.DBNull'

Saber_Fatholahi
چهارشنبه 25 شهریور 1388, 12:22 عصر
اخه دوست من توی این حالت شما زمانی که تصویری وجود نداشته باشه "~\Image\" می مونه که نوعش رشته ای هست و نمی تونه به صورت مستقیم اونو مقایسه کنه
اما توی روس دوستمون که جواب گرفته خروجی Eval چون مقداری نداره از نوع ابجکت و قابل مقایبه هست
موفق باشید امیدوارم منظورم رسونده باشم

liliyan87
چهارشنبه 25 شهریور 1388, 23:08 عصر
اخه دوست من توی این حالت شما زمانی که تصویری وجود نداشته باشه "~\Image\" می مونه که نوعش رشته ای هست و نمی تونه به صورت مستقیم اونو مقایسه کنه
اما توی روس دوستمون که جواب گرفته خروجی Eval چون مقداری نداره از نوع ابجکت و قابل مقایبه هست
موفق باشید امیدوارم منظورم رسونده باشم

خوب اگه میشه بیشتر راهنمایی کنید الان پیشنهاد شما چیه برای کد من؟

h.alizadeh
چهارشنبه 01 مهر 1388, 00:11 صبح
من توی برنامه م می خوام اگه فیلد نال نبود یه جور بشه نال بود یه جور، اینجوری نوشتم:




Text='<%#if(Eval("reply"))==DBNULL ? "" : #Eval("reply").Trim.Replace("<br>", "") %>'


موقع اجرا این خطا رو می ده:
'If' operator requires either two or three operands.

چکار کنم؟

البته اینجوری نوشتم جواب میداد


Text='<%# Eval("reply").Trim.Replace("<br>", "") %>'

ولی نمی دونم حالا شرط گذاشتم خطا میده.