2013-11-12 4 views
0

У меня есть несколько полей, которые выглядят как это веб-сайт, который использует ASP и VB (данные отображаются в GridView):Как условно отображать текст в ASP TemplateView?

<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, если есть данные. В настоящее время он отображает дефис, используемый в текстовой строке, когда нет данных. Я попробовал несколько методов форматирования Eval, которые я нашел в Интернете, но не смог найти рабочее решение. Я также пробовал использовать

EmptyDataText 

свойство, однако это, казалось, не имело никакого эффекта.

Я новичок в ASP, так что это может быть ошибка пользователя. Любая помощь приветствуется.

+0

использование метода RowDataBound для проверки значения обоих полей –

+0

пожалуйста, добавьте свой 'код события RowDataBound' здесь –

ответ

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 это в то время, так что синтаксис может быть выключен.

+0

Я думаю, что вы должны проверить, как строка для создания его видимым или не –

+0

Спасибо так много всех. Сейчас он работает. – user2904475

Смежные вопросы