我试图在我的ASP转发器标签中添加一个条件。我正在创建一个表,其中一个td项是一个链接。问题是我需要在检查转发器容器中的变量中的值时创建链接。这是我的代码:
<td><%#((VWApp.Code.TrackDM)Container.DataItem).CdNo%></td>
<td><%#((VWApp.Code.TrackDM)Container.DataItem).ShippingNo%></td>
现在我需要检查ShippingNo的值,而不是显示它需要显示链接。我试着写这样一个if条件:
if(((VWApp.Code.TrackDM)Container.DataItem).ShippingNo. .. )
{
// do processing and generate a link that needs to displayed
}
但是在尝试这样做时我遇到了错误。任何人都可以指导我做正确的方法吗?
任何想法和建议都受到高度赞赏。
答案 0 :(得分:3)
在<asp:Hyperlink>
内使用<td>
,并将其Visible
属性绑定到将检查ShippingNo的表达式,如果它代表有效链接,则返回true。
答案 1 :(得分:1)
您可以随时使用不使用转发器的老式路线,而是使用内联代码,您可以使用所需的任何代码。类似的东西:
<% foreach (SomeObject obj in MyObjectCollection) { %>
<td>
<% if (obj.SomeProperty == something) { %>
<a href="<%= /* build link */ %>">Click Me</a>
<% } else { %>
Some Text
<% } %>
</td>
<% } %>
这是经典的ASP做事方式,但我发现它在某些情况下效果更好。有时,使用真实代码执行操作更容易,而不是在Repeater或GridView的边界内工作。
答案 2 :(得分:0)
将您的逻辑封装在User Control中,并将其所需的参数传递给显示决策:
<uc:linkdisplay id="linkdisplay1" runat="server"
CdNo='<%#((VWApp.Code.TrackDM)Container.DataItem).CdNo %>'
ShippingNo='<%#((VWApp.Code.TrackDM)Container.DataItem).ShippingNo%>' />