如何在三元运算符中插入超链接

时间:2016-11-03 10:58:51

标签: c# asp.net hyperlink

我在asp.net中创建了一个新项目,我正努力在三元运算符中插入超链接。

以下是代码段:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
   <Columns>
      <asp:BoundField DataField="Id" HeaderText="Id" ItemStyle-Width="50" />
      <asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
      <asp:TemplateField HeaderText="Status" ItemStyle-Width="100">
        <ItemTemplate>
           <a href='<%# Eval("Status", "Questions/{0}.aspx") %>'>'<%# Eval("Status") %>'</a>
           <%# Eval("Status").ToString() == "A" ? "Absent" : "Present"  %>
        </ItemTemplate>
      </asp:TemplateField>
   </Columns>
</asp:GridView>

在上面的代码中,如果状态为&#34; A&#34;,我需要在&#34; <a href='<%# Eval("Status", "Questions/{0}.aspx") %>'>'<%# Eval("Status") %>'</a>&#34的位置插入超链接(Absent) ;。

这是我的输出:

enter image description here

我该怎么做?任何建议都是健康的。谢谢。

更新#1

我只需要缺席作为链接,对于现在,我只是将其显示为纯文本。

enter image description here

1 个答案:

答案 0 :(得分:2)

试试这个:

<ItemTemplate>
  <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='Questions/Absent.aspx' 
       Text='<%# Eval("Status") %>' Visible='<%# Convert.ToBoolean(Eval("Status").ToString() == "A" ? "True" : "False")) %>'>
  </asp:HyperLink>
  <asp:Label ID="Label1" runat="server" Text='Present' Visible='<%#  Convert.ToBoolean((Eval("Status").ToString() == "A" ? "False" : "True")) %>'>
  </asp:Label>

</ItemTemplate>