2010-08-02 4 views
0

Я не хочу, чтобы метка отображалась, если поле равно null. В моих строках базы данных данные не заполняются для всех столбцов.listview null values ​​

Я думал, что это будет работать:

<% if(# Eval("recipe_by") == null){%><br /><br /><%} else {%>Recipe by: 
<br /><br /> <asp:Label ID="recipe_byLabel" Font-Bold="True" runat="server" Text='<%# Eval("recipe_by") %>' /> } 

Я получаю эту ошибку:

Compiler Error Message: CS1040: Preprocessor directives must appear as the first non-whitespace character on a line

Source Error:

Line 386: Line 387: Line 388:<% if(# Eval("recipe_by") == null){%>

<%} else {%>Recipe by: Line 389:

' /> } Line 390:

Compiler Error Message: CS1040: Preprocessor directives must appear as the first non-whitespace character on a line

Source Error:

Line 386: Line 387: Line 388:<% if(# Eval("recipe_by") == null){%>

<%} else {%>Recipe by: Line 389:

' /> } Line 390:

ответ

1

Это хэш-символа (#), как мы называем его в Blighty - я уверен, что вы не хочу, чтобы там. Это используется для Preprocessor Directives.

+0

Ответ, который я отправил от кого-то, на самом деле не работал, по-прежнему показывает метку, когда null. Я вынул первый # charater и получил эту ошибку Compiler Error Message: CS1010: Newline в постоянном Источник ошибки: Line 407: Размер порции:

Line 408: <жерех: Label ID =» serving_sizeLabel»шрифт-Выделено = "True", Runat = "сервер" Строка 409: Текст = '<% # Eval ("serving_size")%>' /> линия 410: линия 411 : – Mike

0

Здесь

<span> 
<%# (Eval("recipe_by")==null)? "<br/><br/>":"Recipe By:<br/><br/>" %></span> 
    <asp:Label ID="recipe_byLabel" Font-Bold="True" runat="server" Text='<%# Eval("recipe_by") %>' /> 
+0

Нету не работает, просто выглядел так. – Mike

0
Compiler Error Message: CS0029: Cannot implicitly convert type 'string' to 'bool' 

Source Error: 



Line 388:   
Line 389: 
Line 390:<asp:Label ID="recipe_byLabel" Font-Bold="True" Text="Recipe by:" runat="server" 
Line 391: Visible='<%# (Convert.ToString(Eval("recipe_by")))? Boolean.Parse("false"):Boolean.Parse("true") %>'></asp:Label> 
Line 392: 

Я мог бы клялись, что бы это сделать!

0

Если вы устали пытаться настроить строковые теги работать правильно, вы можете использовать два других подхода:

  • код позади
  • хранимой процедуры/SQL Statement возврата

код позади мой любимый - если вы работаете с объектом, подобным gridview и т. д., вам может потребоваться использовать onrowdatabound или другое подобное событие для установки видимых свойств.

Если вы необходимо использовать встроенные теги, иногда, возможно, было бы проще просто иметь «видимый» столбец в вашем SQL заявления - то есть:

SELECT 
    field1, 
    field2, 
    CASE WHEN recipe_by is null, 'false' ELSE 'true' END as recipe_by_visible 
FROM 
    table 

И тогда в вашем встроенном коде:

... 
visible = <% eval("recipe_by_visible") %> 
... 
0

Это то, что я в конечном итоге использовал ,,, работает GREAT !!

<span><%# (String.IsNullOrEmpty(Convert.ToString(Eval("yield"))))? "":" <br/><br/>Yield:<br/><br/>" %></span> 
<asp:Label ID="yieldLabel" Font-Bold="True" runat="server" Text='<%# Eval("yield") %>' />