C# ASP中继器中的条件

C# ASP中继器中的条件,c#,asp.net,C#,Asp.net,我正在尝试将一个条件放入我的ASP repeater标记中。我正在创建一个表,其中一个td项是链接。问题是我需要在检查repeater容器中某个变量的值时创建一个链接。这是我的密码: <td><%#((VWApp.Code.TrackDM)Container.DataItem).CdNo%></td> <td><%#((VWApp.Code.TrackDM)Container.DataItem).ShippingNo%></td&

我正在尝试将一个条件放入我的ASP repeater标记中。我正在创建一个表,其中一个td项是链接。问题是我需要在检查repeater容器中某个变量的值时创建一个链接。这是我的密码:

<td><%#((VWApp.Code.TrackDM)Container.DataItem).CdNo%></td>
<td><%#((VWApp.Code.TrackDM)Container.DataItem).ShippingNo%></td>
但我在尝试这样做时出错了。有人能告诉我做这件事的正确方法吗


非常感谢您的任何想法和建议。

在您的
中使用
,并将其
Visible
属性绑定到一个表达式,该表达式将检查ShippingNo,如果它表示有效链接,则返回true。

中使用
,并将其
Visible
属性绑定到一个表达式,该表达式将检查ShippingNo,如果它表示有效链接,则返回true。

您始终可以走老式的路线,即根本不使用中继器,而是使用内联代码,您可以使用任何需要的代码。比如:

<% foreach (SomeObject obj in MyObjectCollection) { %>
  <td>
    <% if (obj.SomeProperty == something) { %>
      <a href="<%= /* build link */ %>">Click Me</a>
    <% } else { %>
      Some Text
    <% } %>
  </td>
<% } %>

一些文本

这是ASP做事情的经典方式,但我发现它在某些情况下更有效。有时候,使用真正的代码比在中继器或GridView的范围内工作更容易。

你可以一直走老式的路线,根本不使用中继器,而是使用内联代码,在那里你可以使用你需要的任何代码。比如:

<% foreach (SomeObject obj in MyObjectCollection) { %>
  <td>
    <% if (obj.SomeProperty == something) { %>
      <a href="<%= /* build link */ %>">Click Me</a>
    <% } else { %>
      Some Text
    <% } %>
  </td>
<% } %>

一些文本

这是ASP做事情的经典方式,但我发现它在某些情况下更有效。有时,使用真实代码比在中继器或GridView的边界内工作更容易。

将您的逻辑封装在一个文件中,并向其传递做出显示决策所需的参数:

<uc:linkdisplay id="linkdisplay1" runat="server" 
      CdNo='<%#((VWApp.Code.TrackDM)Container.DataItem).CdNo %>' 
      ShippingNo='<%#((VWApp.Code.TrackDM)Container.DataItem).ShippingNo%>' />

将逻辑封装在a中,并向其传递做出显示决策所需的参数:

<uc:linkdisplay id="linkdisplay1" runat="server" 
      CdNo='<%#((VWApp.Code.TrackDM)Container.DataItem).CdNo %>' 
      ShippingNo='<%#((VWApp.Code.TrackDM)Container.DataItem).ShippingNo%>' />


但是如果没有链接,我将如何显示shippingNo?有些情况下,我们不需要显示链接,但必须显示编号。当您同时需要一个
和一个
,每个都带有根据ShippingNo的值设置的
可见的属性。但是,如果没有链接,我将如何显示ShippingNo?在某些情况下,我们不需要显示链接,但必须显示编号。当您需要一个
和一个
时,每个
都具有根据ShippingNo的值设置的
可见
属性。而且它可能会在CPU方面表现更好。当然,随着代码的增长,它可能会很快变得一团糟。我也同意这可能会一团糟,但没有什么比编写一个大GridView更让我恼火的了,它包含了大量具有字符串格式的奇特绑定控件、备用行设置以及其他特定于控件的内容,然后发现一个无法解决的小问题,但如果不是这样,内联代码就很容易了。(好吧,很多事情比这更让我恼火,但这以前发生过,处理起来很痛苦)。而且它可能会表现得更好,CPU方面的。当然,随着代码的增长,它可能会很快变得一团糟。我也同意这可能会一团糟,但没有什么比编写一个大GridView更让我恼火的了,它包含了大量具有字符串格式的奇特绑定控件、备用行设置以及其他特定于控件的内容,然后发现一个无法解决的小问题,但如果不是这样,内联代码就很容易了。(好吧,很多事情比这更让我恼火,但这以前发生过,处理起来很痛苦)。