У меня есть ретранслятор, в котором я хочу показывать рекламу.Моя проблема заключалась в том, содержал ли ретранслятор URL-адрес, если он оборачивал изображение в гиперссылку, а не просто отображал изображение.Для этого я использовал OnItemDataBound.
HTML
<div class="col-12 text-center">
<!-- Advert column -->
<asp:Panel ID="pnl_Adverts" runat="server">
<asp:Repeater ID="rpt_Adverts" runat="server" OnItemDataBound="rpt_Adverts_ItemDataBound">
<ItemTemplate>
<div class="row advert_row">
<asp:Panel ID="pnlAds" runat="server">
</asp:Panel>
</div>
</ItemTemplate>
</asp:Repeater>
</asp:Panel>
</div>
В ItemDataBound я догадался, что это лучший способ проверить, существует ли URL-адрес, и показать гиперссылку.Я пытался скрыть гиперссылку, используя Javascript, но она также скрывала изображение.
ItemDataBound
protected void rpt_Adverts_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
//Get this data item as a datarow
DataRowView drv = e.Item.DataItem as DataRowView;
//Get the url
string url = drv.Row["url"].ToString();
//Check if there is an url
if (url.Length > 0)
{
//Create a hyperlink with an image
HyperLink hlAdvert = new HyperLink()
{
ImageUrl = Resources.Main.Url + "/images/ads/" + drv.Row["img"],
NavigateUrl = drv.Row["url"].ToString(),
Target = "_blank",
ToolTip = "Visit",
};
//Add nofollow attribute to this hyperlink
hlAdvert.Attributes.Add("rel", "nofollow");
//Add this image link to the advert panel
pnl_Adverts.Controls.Add(hlAdvert);
}
else
{
//Create an image
Image imgAd = new Image()
{
ImageUrl = Resources.Main.Url + "/images/ads/" + drv.Row["img"],
AlternateText = "Advert"
};
//Add the image to the advert panel
pnl_Adverts.Controls.Add(imgAd);
}
}
Это то, как оно выводилось, я не уверен, почему, но он не добавилгиперссылки на панель, хотя я специально добавил элемент управления гиперссылкой на панель ASP.
<div class="col-12 text-center">
<!-- Advert column -->
<div id="pnl_Adverts">
<div class="row advert_row">
<div id="rpt_Adverts_pnlAds_0">
</div>
</div>
<div class="row advert_row">
<div id="rpt_Adverts_pnlAds_1">
</div>
</div>
<a title="Visit" rel="nofollow" href="/advertising" target="_blank">
<img title="Visit" src="/images/ads/advertise_here.png" alt="" /></a><a title="Visit" rel="nofollow" href="/advertising" target="_blank"><img title="Visit" src="/images/ads/advertise_here.png" alt="" /></a>
</div>
</div>
Это то, что я ожидаю.
<div class="col-12 text-center">
<!-- Advert column -->
<div id="pnl_Adverts">
<div class="row advert_row">
<div id="rpt_Adverts_pnlAds_0">
<a title="Visit" rel="nofollow" href="/advertising" target="_blank">
<img title="Visit" src="/images/ads/advertise_here.png" alt="" /></a>
</div>
</div>
<div class="row advert_row">
<div id="rpt_Adverts_pnlAds_1">
<a title="Visit" rel="nofollow" href="/advertising" target="_blank">
<img title="Visit" src="/images/ads/advertise_here.png" alt="" /></a>
</div>
</div>
</div>
</div>