如何在ASP TemplateView中有条件地显示文本?

时间:2013-11-12 15:57:49

标签: asp.net vb.net

我在一个使用ASP和VB的网站上有一些看起来像这样的字段(数据显示在gridview中):

<asp:TemplateField HeaderText ="Comp" SortExpression="NAM_CMPT" ItemStyle-Width="50%" ItemStyle-Wrap ="false" ItemStyle-HorizontalAlign ="left">
     <ItemTemplate>                                                                     
         <asp:Label ID ="Label_Comp" runat="server"                            
              Text='<%# Eval("CDE_CMPT") + " - " + Eval("NAM_CMPT")%>' /> 
         </ItemTemplate>
</asp:TemplateField>

如果数据为空,我正在尝试做的是在字段中不显示任何内容,如果有数据,则显示您在Text属性中看到的字符串。目前,当没有数据时,它会显示Text字符串中使用的连字符。我尝试了几种格式化Eval的方法,我在网上找到但无法找到可行的解决方案。我也尝试过使用

EmptyDataText

属性然而这似乎没有效果。

我是ASP新手,因此可能是用户错误。任何帮助是极大的赞赏。

1 个答案:

答案 0 :(得分:0)

您还可以使用eval进行可见并检查数据

<asp:TemplateField HeaderText ="Comp" SortExpression="NAM_CMPT" ItemStyle-Width="50%" ItemStyle-Wrap ="false" ItemStyle-HorizontalAlign ="left">
     <ItemTemplate>                                                                     
         <asp:Label ID ="Label_Comp" runat="server" visible='<%# If(String.IsNullOrEmpty(Eval("CDE_CMPT")), false, true)'                            
              Text='<%# Eval("CDE_CMPT") + " - " + Eval("NAM_CMPT")%>' /> 
         </ItemTemplate>
</asp:TemplateField>

我还没有用过VB.net,所以语法可能会关闭。