2010-08-02 7 views
0

Je ne veux pas que l'étiquette indique si le champ est nul. Dans mes lignes de base de données, les données ne sont pas complètes pour toutes les colonnes.valeurs nulles listview

Je pensais que cela fonctionnerait:

<% 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") %>' /> } 

Je reçois cette erreur:

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:

Répondre

1

Il est le caractère dièse (#), comme nous l'appelons dans blighty - Je suis sûr que vous Je ne veux pas ça. C'est utilisé pour Preprocessor Directives.

+0

La réponse que j'ai posté de quelqu'un d'autre n'a pas fonctionné, montre toujours l'étiquette quand null. Je pris la première # charater et obtenu cette erreur compilateur Message d'erreur: CS1010: Newline en constante Source Erreur: Ligne 407: Portion:

Ligne 408: Ligne 410: Ligne 411: – Mike

0

Ici, il est

<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

non n'a pas fonctionné, juste l'air comme ça. – 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: 

je aurais pu juraient qui le faire!

0

Si vous êtes fatigué d'essayer de modifier les balises en ligne pour travailler à droite, vous pouvez utiliser deux autres approches:

    Code
  • derrière
  • procédure stockée/instruction SQL retour

code derrière est mon préféré - si vous travaillez sur un objet comme un gridview, etc., vous devrez peut-être utiliser le onrowdatabound ou un autre événement similaire pour définir les propriétés visibles.

Si vous doit utiliser des balises inline, parfois, il serait peut-être plus facile juste pour avoir une colonne « visible » dans votre déclaration SQL - à savoir:

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

Et puis dans votre code en ligne:

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

C'est ce que j'ai fini par utiliser ,,, fonctionne très bien !!

<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") %>' />