これが私のページコードです。自分の記録を表示したいだけです。ページには検索パネルもあります。検索パネルには、いくつかのドロップダウン リスト コントロールがあり、それらには OnSelectedIndexChanged メソッドがあります。最初のドロップダウンリストで選択したアイテムを変更すると、リピーターに属する onItemDatabound イベントが機能しなくなります。
代わりに何が起こるか:ItemDataBound
イベントでは、各レコードの画像をパネルに動的に追加します。そのため、ドロップダウンリストの選択した項目を変更すると、写真が消えます。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataBindToPage();
}
}
protected void DataBindToPage()
{
rptLast.DataSource = EntitiyProvider.GetAdvertListLatest();
rptLast.DataBind();
rptSchool.DataSource = EntitiyProvider.GetAdvertListLatest("Ders Kitabı");
rptSchool.DataBind();
rptBook.DataSource = EntitiyProvider.GetAdvertListLatest("Edebi Eser");
rptBook.DataBind();
}
protected void rptLast_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
Advert adv = (Advert)e.Item.DataItem;
Panel pnlLastAdvertPic = (Panel)e.Item.FindControl("pnlLastAdvertPic");
List<AdvertPicture> advPic = EntitiyProvider.GetAdvertKapakPicByAdvertId(adv.id);
if (advPic.Count != 0)
{
string picPath = string.Empty;
foreach (AdvertPicture item in advPic)
{
if (item.primePicture == true)
{
picPath = item.picturePath;
}
}
if (picPath == string.Empty)
{
pnlLastAdvertPic.Controls.Add(new Image { ImageUrl = "~/uploads/" + advPic[0].picturePath, Width = 140, CssClass="rpTable" });
}
else
{
pnlLastAdvertPic.Controls.Add(new Image { ImageUrl = "~/uploads/" + picPath, Width = 140, CssClass = "rpTable" });
}
}
else
{
pnlLastAdvertPic.Controls.Add(new Image { ImageUrl = "~/images/Noimage.gif", Width = 120, CssClass = "rpTable" });
}
}
}