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.

OriginalL'auteur ward87 | 2010-11-11