2008-12-19 11 views
2

J'ai des problèmes avec l'attribut visible d'un panneau asp.net. Fondamentalement, j'ai une page qui appelle une table de base de données et retourne les résultats dans une vue détaillée. Cependant, certaines des valeurs qui sont retournées sont nulles et si c'est le cas, j'ai besoin de cacher l'image qui est à côté.asp.net panel statement

J'utilise un panneau pour déterminer si pour masquer ou afficher l'image, mais je suis de la difficulté avec la déclaration:

visible = '<% # Eval ("addr1") <> DBNull.Value%>'

J'ai essayé ces derniers aussi bien:

visible '<% # Eval ("de addr1") <> DBNull.Value%>' =

= visible » <% # IIf (Eval (» addr1 ") I s DBNull.Value, "Faux", "True")%> »

Quand je les utilise, j'obtiens l'erreur:

compilateur Message d'erreur: CS1026:) devrait

Toute aide sur ce que le la syntaxe devrait être géniale.

Merci

+0

Pouvez-vous envoyer plus de code pls? Faites-vous quelque chose côté client? –

Répondre

2

Je déteste Databinding (pour beaucoup de raisons, y compris cela), chaque fois que j'ai une expression trop complexe pour se lier à. Je le déclare dans le code et je l'appelle pour faire le sale boulot.

Quelque chose comme

> visible='<%# GetIsVisible(Eval("addr1")) %>' 

Ensuite, vous définissez votre méthode « GetIsVisible » pour prendre un seul objet en tant que paramètre. Je vais vous laisser le soin de le faire, puisque vous utilisez VB et je vais sûrement le tuer.

Edit: Juste remarqué que vous dites que vous utilisez C# Si son en C#, vous aurez besoin d'utiliser l'opérateur =, il n'y a pas <> opérateur en C#!.

> visible='<%# Eval("addr1") <> DBNull.Value %>' 

doit être quelque chose comme

> visible='<%# Eval("addr1") != DBNull.Value %>' 

Aussi je prob simplement utiliser Convert.IsDBNull

> visible='<%# !Convert.IsDBNull(Eval("addr1")) %>' 
0

Essayer: = visible » <% # (Eval ("addr1") est DBNull .Value? "False": "True")%> '

la syntaxe correcte pour iif est (condition? Si vrai cette valeur : Si elle est fausse cette valeur) en supposant que votre C# à l'aide

0

... Erm

Est-ce que ce travail?

visible='<%= IIf(Eval("addr1") Is DbNull.Value, "False","True") %>' 

Ou avez-vous en fait un point-virgule à la fin, comme celui-ci (vous ne devriez pas avoir BTW)

visible='<%# IIf(Eval("addr1") Is DbNull.Value, "False","True"); %>' 
+0

"Faux" et "Vrai" sont des chaînes. Visible veut un booléen, donc vous laissez les guillemets (bien sûr, Iif renvoie un objet, donc vous devrez probablement lancer aussi). –

0

Plus poignarde dans l'obscurité, essayez cette

visible="<%# IIf(Eval('addr1') Is DbNull.Value, 'False','True') %>" 
6

Votre syntaxe dit VB.NET, mais vous êtes compilateur dit C# (l'erreur de compilation CS *). Depuis que je fais confiance à votre compilateur plus:

Visible='<%# Eval("addr1") != DBNull.Value %>' 
0

Désolé pour mettre un vieux fil de secours, je voulais juste dire:

= visible » <% # Convert.IsDBNull (Eval ("addr1")) %> »

cela a fonctionné - LÉGENDE

remercie tous

Questions connexes