Si l'instruction à l'intérieur d'une ListView avec Eval() ou DataBinder.Eval()?
J'ai un contrôle listview sur un .page aspx. À l'intérieur de cet affichage de la liste je souhaite vérifier la propriété "Type" qui vient de la base de données. voici l'exemple de code :
<ItemTemplate>
<%# if(Convert.ToInt32(DataBinder.Eval(Container.DataItem,"Type")) == 0){ %>
<tr class="item">
<td>
<%# Convert.ToDateTime(Eval("WorkDate")).ToShortDateString() %>
</td>
<td style="text-align: center;">
<%# Eval("SkillName") %>
</td>
</tr>
<%# } else if (Convert.ToInt32(DataBinder.Eval(Container.DataItem,"Type")) == 1) {%>
<tr class="item">
<td colspan="2">
<strong><%# Convert.ToDateTime(Eval("WorkDate")).ToShortDateString() %></strong>
</td>
</tr>
<% } %>
</ItemTemplate>
En dernier recours, j'ai essayé de l'utilisateur DataBinder.Eval() mais j'ai l'exception Attendue "de la classe, un délégué, une énumération, une interface ou une struct". Que puis-je fait de mal? L'écriture d'une fonction dans le code-behind n'est pas une option pour moi. Est-il un moyen pour y parvenir?
"L'écriture d'une fonction dans le code-behind n'est pas une option pour moi" Pourquoi? Il y a un Événement ItemDataBound où vous pouvez le faire facilement: msdn.microsoft.com/en-us/library/...
Le problème est avec les instructions de contrôle, ils sont un non-non dans un élément de modèle.
Le problème est avec les instructions de contrôle, ils sont un non-non dans un élément de modèle.
OriginalL'auteur ward87 | 2010-11-11
Vous devez vous connecter pour publier un commentaire.
Pas testé, car je n'ai pas Visual Studio disponible pour le moment, mais depuis HtmlTableRow a un
Visible
bien, la suivante devrait fonctionner:OriginalL'auteur Heinzi
Voici le code complet, fait de fantaisie et court.
cette Eval chose à être exécutés sur le côté serveur, correct?
dans .NET des trucs dans
<% %>
et<%# %>
est évaluée par le système de script et n'est pas envoyée directement dans le navigateur. Lorsque le#
présent cela signifie écrire le résultat de l'évaluation d'une expression. Quand il n'est pas présent, il est exécuté par le langage de script (donc il peut contenir de branchement et boucle de fonctionnalité.)OriginalL'auteur Hogan
oui, vous avez à faire un peu le script côté client si... je dirais jquery..
vous serait essentiellement une boucle sur toutes les lignes de jquery et sur la base des données de la ligne, vous serait en mesure de changer le innerhtml de la ligne d'objet basé sur le ".l'élément" sélecteur pour déterminer si elle doit être dans un format ou l'autre.
ma compréhension de l'OP de la question, c'est qu'il a deux formats différents pour chaque ligne qu'il souhaite mettre en œuvre. si c'est un type, le format doit être de 1 voie, si sa l'autre type, il devrait être d'une autre manière. je ne suis pas sûr si le masquage d'une ligne en fonction de type de travail, sauf s'il est double affichage de chaque enregistrement de la base de données dans le modèle et de le désactiver et dans chaque itteration.
Heinzi façon est tout à fait exact. Pas le script côté client est requis pour cette opération.
Oui c'est exactement ce que vous faites, ou vous pouvez être de fantaisie cas précis comme mon exemple.
OriginalL'auteur Patrick