由于中继器内的背景图像的内联设置,ASP.NET页面加载触发两次

问题描述 投票:0回答:1

一切都在运行两次。我有一个中继器,并且尝试在其ItemTemplate中设置背景图像。我将其范围缩小到下一行。拔出style属性中的background-image ...部分后,它仅运行一次。照片是数据uri。如果我将代码保留在其中,它将实际上显示背景图像,但会使所有内容运行两次。奇怪的是,如果我在“ url”和“(”之间放置一个空格,它也会停止触发两次,但是由于它破坏了背景图片的必需语法,因此背景图片没有显示。它导致它触发两次。我也尝试了变体,但是同样的问题,似乎与我使用数据uri无关,而是尝试了一个典型的file.jpg,但它仍然触发了两次。 ..我也将其从style属性中拉出,然后将其放在诸如test =“”这样的made believe属性中,并且它起作用了。因此,绑定css属性“ background-image:url( ...)“

我什至试图将代码移到ItemDataBound事件,它仍然导致页面运行两次。我只是想不通。

<span style='<%# "background-image:url("+DataBinder.Eval(Container.DataItem, "Photo")+");height: 32px; width: 32px;background-size: 100%;background-position:0% 25%;background-repeat:no-repeat;"%>'></span>


<span style='background-image:url(<%#DataBinder.Eval(Container.DataItem, "Photo")%>);height: 32px; width: 32px;background-size: 100%;background-position:0% 25%;background-repeat:no-repeat;'></span>
asp.net uri repeater
1个回答
0
投票

似乎它们都已经关闭,但是嵌入式代码块(<%#)有点偏离。

在此示例中,代码块应围绕DataBinder,而不是css。

<span style='<%# "background-image:url(" + DataBinder.Eval(Container.DataItem, "Photo")+");
    height: 32px; width: 32px;background-size: 100%;background-position:0% 25%;
    background-repeat:no-repeat;"%>'></span>

这个很近,但是引号只能在CSS周围。

<span style='background-image:url(<%#DataBinder.Eval(Container.DataItem, "Photo")%>);
    height: 32px; width: 32px;background-size: 100%;background-position:0% 25%;
    background-repeat:no-repeat;'></span>

应该是

<span style='background-image:url(' + <%# DataBinder.Eval(Container.DataItem, "Photo") %> + ');
    height: 32px; width: 32px;background-size: 100%;background-position:0% 25%;
    background-repeat:no-repeat;'></span>

我认为就可以了。我在此处添加了换行符以提高可读性。

© www.soinside.com 2019 - 2024. All rights reserved.