asp.net code en ligne <%# MyboolVal %>
Je doit manquer quelque chose de stupide ici, mais je ne peux pas le voir. Mon travail utilise le code en ligne sur leurs sites, par exemple:
<panel runat="server" id="myid" visible='<%# MyboolVal %>'>
some stuff
</panel>
Qui semble fonctionner à merveille pour eux, le panneau affichera lorsque leur état est rencontrer.
Je suis en train d'utiliser une approche similaire sur un site de la mine à la maison (son vendredi en fin de la soirée, afin de demander à mon patron n'est pas la meilleure idée à ce stade). Je ne peux pas l'obtenir à la sortie de quelque chose. Je l'ai essayé dans le domaine visible, qui n'a pas fonctionné, alors j'ai pensé que je voudrais juste avoir à écrire quelque chose à l'écran:
<p>some text <%# String.Format("meeee {0}", Mybool) %></p>
Mais je ne reçois aucune sortie à partir du code en ligne. le "texte" s'affiche mais pas de "meeee" ou la valeur booléenne.
Je fais cela à l'intérieur d'un contrôle à l'utilisateur, en ce moment, mais ne vous imaginez pas que ce serait la cause.
des idées s'il vous plaît?
Grâce
MODIFIER....
OK, donc merci à Freddy Rios pour la réponse, je peux obtenir le texte s'affiche mais lorsque je tente: -
Visible='<%= mybool %>'
J'obtiens l'erreur de compilation:
Ne peut pas créer un objet de type System.boolean à partir de sa représentation sous forme de chaîne de la propriété visible.
Je suis confus quant à ce qui se passe exactement. Il doit faire partie du processus sous le capot je ne reçois pas.
EDIT 2:
J'obtiens l'erreur sur la ligne 123:
<fieldset class="myclass" id="projectarea" runat="server" visible='<%= ShowProjectSearchArea %>'>
ShowProjectSearchArea est mon bool valeur, la valeur false.
Si je double-cliquez sur l'erreur dans la fenêtre Liste des Erreurs que je reçois le texte suivant dans une fenêtre popup, je n'ai jamais vu avant:
Cannot open file '%1'. It might not be in the solution.
OriginalL'auteur Jon | 2009-12-04
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser = au lieu de # dans votre version:
Le # est pour la liaison de données, de sorte que dans le code d'origine, il doit être un appel à DataBind quelque part.
Je voulais dire le commentaire sur l'utilisation de = sur votre inline version lorsque vous voulez afficher le texte. Vous ne pouvez pas l'utiliser avec une propriété d'un contrôle serveur, dans ce cas, vous pouvez utiliser votre original et appelez DataBind sur votre panneau (ou sur le contrôle qu'il contient).
OMG, votre place sur. L'ampoule est venu dès que j'ai lu le mot "DataBind"... je savais qu'il me manquait quelque chose de vraiment stupide. J'aimerais le mettre vers le bas à 1h de codage mais je pense que j'étais juste être un idiot. Merci beaucoup. J'ai appris un peu aujourd'hui, alors merci à tous qui m'ont aidé.
OriginalL'auteur eglasius
<%#
est la liaison de données de la balise qui est utilisé pour définir les valeurs à côté serveur contrôles, en particulier lié aux données des contrôles.<%=
est une abréviation deResponse.Write()
, il écrit la valeur de la sortie. Nous avons donc l'utiliser avec les éléments html statiques.OriginalL'auteur Canavar
Je pense que le problème, c'est parce que la propriété visible attendent la valeur de type chaîne de caractères et que vous essayez de le régler avec bool.essayez de lancer votre valeur à la chaîne de
Acclamations
Les paramètres de propriétés qui n'utilisent pas de chaîne, comme le type de la <# %> syntaxe que l'exécution sera automatiquement correspondre aux types lors de la liaison de données. <%= %> est une abréviation pour la Réponse.Écrire et ne peut jamais être utilisée pour définir la propriété des valeurs des objets, depuis sa juste écrit la chaîne de caractères comme-est à l'endroit correspondant dans le OutputStream.
OriginalL'auteur Marko