在处理数据绑定中继器时,在某些情况下添加标签的超链接

时间:2015-06-16 19:58:57

标签: c# asp.net data-binding hyperlink repeater

听起来有点凌乱,但基本上我有一个数据包转发器。在ASP方面,我有这个:

<div id="video1" class="item">
  <div class="screenshot">
    <img src="image1.png" />
  </div>
  <h3>I am Video 1</h3>
</div>
<div id="video2" class="item">
  <div class="screenshot">
    <img src="image2.png" />
  </div>
  <h3>I am Video 2 <span class="premium">P</span></h3>
</div>
<div id="video3" class="item">
  <div class="screenshot">
    <img src="image3.png" />
  </div>
  <h3>I am Video 3</h3>
</div>

我对4个不同的数据集使用相同的模板,其中2个应该是超链接,而另外2个则不应该。所以,我猜你必须在代码隐藏中以编程方式添加超链接?有没有人做过这样的事情?

2 个答案:

答案 0 :(得分:1)

是的,可以在DataItem绑定的代码中隐藏

^photo.*\.$

答案 1 :(得分:1)

没有各种代码隐藏的最简单的方法,因此更少的代码碎片,我会说你需要一个在数据绑定之前根据你的条件设置的属性。

protected bool LinkVisible { get; set; }

然后你就这样做了:

<asp:Label ID="Label2" runat="server" Text='<%#Eval("uMessage") %>' Visible="<%# !LinkVisible %>"></asp:Label>
<asp:HyperLink ID="Link" runat="server" Visible="<%# LinkVisible %>" ><%#Eval("uMessage") %></asp:HyperLink>

这为Label或HyperLink设置了Visible。可见错误意味着它甚至无法渲染。在您的标记中,您可以看到将有标签或超链接,并且后面的代码中没有弹出特殊内容。

您不需要添加属性LinkVisible,但也可以在那里添加条件。