براي كنترل بر روي سطر هاي كه در ريپيتر در حال بايند شدن است از روال 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 يا .... ! آنها را در همين روال پياده سازي كن .