我可以在GridView ItemTemplate中使用IF语句吗?

Sli*_*345 9 c# asp.net data-binding gridview

我有一个简单的gridview ItemTemplate,如下所示:

<asp:TemplateField HeaderText="User">
   <ItemTemplate>
      <a href="mailto:<%# Eval("Email") %>"><%# Eval("Name") %></a>
   </ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

但是,并非此列表中的所有用户都有电子邮件存储在系统中,这意味着Eval("电子邮件")有时会返回空白.发生这种情况时,我宁愿在该字段上没有链接,因为如果没有电子邮件地址,mailto将无法运行.

我怎样才能做到这一点?我希望我可以在演示代码中使用IF语句,就像经典的ASP一样.如果没有,我想我可以在我的数据源上创建一个包含整个HREF html的属性......

Tho*_*mar 14

而不是Eval你可以使用任何给定的公共功能.因此,您可以尝试执行以下操作:

<ItemTemplate>
    <%# (String.IsNullOrEmpty(Eval("Email").ToString()) ? String.Empty : String.Format("<a href='mailto:{0}'>{1}</a>", Eval("Email"), Eval("Name")) %>
</ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

如果没有尝试过确切的语法,但我在我的一个页面中使用了类似的东西.