PDA

View Full Version : سوال: Repeater و استفاده از عکس در برخی سطرها



webman
چهارشنبه 20 آذر 1387, 20:52 عصر
در یک Repeater میخوام در برخی از سطرها با توجه به یک شرط خاص در هر رکورد در بانک یک عکس قرار دهم . ساده تر بگم تعدادی محصول داریم که حالا تعدادی از آنها به عنوان محصول جدید در بانک مشخص شده اند حالا تعدادی از این محصولات را با Repeater می خواهیم نمایش دهیم(البته هم جدید و هم قدیمی) و در کنار آنهایی که جدیدند یک عکس قرار دهیم (مثلا New) چگونه امکان دارد؟
یک راهنمایی کلی هم بکنید ممنون میشم

merlin_vista
چهارشنبه 20 آذر 1387, 22:58 عصر
براي كنترل بر روي سطر هاي كه در ريپيتر در حال بايند شدن است از روال ItemDataBound اين كنترل استفاده كن .

براي مثال فرض كن كه من ميخواهم اگر فيلدي در جدول خودم خالي بود هيچ عكسي نمايش داده نشود . و اگر پر بود بك تصوير نمايش داده شود . براي اين كار آن فيلد را كه ميخواهم مقدارش را چك كنم به يك HiddenFild ارتباط ميدهم و يك كنترل تصوير در جايي دلخواه ايجاد ميكنم . و روال ItemDataBound به اين صورت مينويسم .

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{

HtmlInputHidden hp = (HtmlInputHidden)e.Item.FindControl("Hidden1");
Image img = (Image)e.Item.FindControl("Image1");
if (!string.IsNullOrEmpty(hp.Value))
{
img.ImageUrl = "~/attach.gif";
}
else
{
img.Visible = false;
}
}حالا با توجه به نياز خودت ميتوني كد بالا را تغيير بدي (اين كد فقط براي ايده دادن به شما بود و روش انجام كار . البته ممكنه راه هاي ديگه هم باشه . )


ساده تر بگم تعدادی محصول داریم که حالا تعدادی از آنها به عنوان محصول جدید در بانک مشخص شده اند حالا تعدادی از این محصولات را با Repeater می خواهیم نمایش دهیم(البته هم جدید و هم قدیمی) و در کنار آنهایی که جدیدند یک عکس قرار دهیم (مثلا New) چگونه امکان دارد؟براي اينكه اين كار را انجام بدي براي محصولات يك فيلد تاريخ ايجاد كن و در روال ItemDataBound يك شرط بگزار گه اگه اين تاريخ از يه مدت زماني تا الان ثبت شده (مثلاً 10 روز قبل تا الان ) يه تصوير new بياد . اگر هم نه كه نياد .


تعدادی از آنها به عنوان محصول جدید در بانک مشخص شده اند
اگر هم كه به روشي مشخص ميكني محصولات جديد را ، مثل يك فيلد bit يا .... ! آنها را در همين روال پياده سازي كن .

webman
پنج شنبه 21 آذر 1387, 10:45 صبح
ممنونم از پاسخ شما

merlin_vista
پنج شنبه 21 آذر 1387, 21:58 عصر
البته لازم به ذكر است كه ميتوان به جاي HiddenFilde خود همون فيلد را مستقيم صدا زد .