34 votes

Les méthodes de liaison de données telles que Eval(), XPath() et Bind() ne peuvent être utilisées que dans le contexte d'un contrôle lié aux données.

Je reçois l'erreur suivante

Les méthodes de liaison de données telles que Eval(), XPath() et Bind() ne peuvent être utilisées que dans le contexte d'un contrôle lié aux données.

mais tout ce que j'essaie de faire est à l'intérieur d'un contrôle ASP.NET REPEATER

<% if ( Eval("Message").ToString() == HttpContext.Current.Profile.UserName) %>
<% { %>

<% } %>

47voto

Steve Points 2734

La syntaxe est

<%# Eval("...") %>

Vous pourriez faire quelque chose comme

et dans votre codebehind:

boolean ShowImg(string msg)
{
     return (msg == HttpContext.Current.Profile.UserName);
}

27voto

Jen Points 231

Une alternative est la suivante :

Il n'est alors pas nécessaire de code derrière.

3voto

Rohit Arora Points 1323

C'est trop tard mais j'aimerais répondre à ma manière, ce que j'ai fait pour y parvenir :

<%# Eval("Message").toString()== HttpContext.Current.Profile.UserName)?"" :""%>

Maintenant, cela ne montrera le bouton d'image que si le message est égal au nom d'utilisateur.

Cela pourrait aider quelqu'un d'autre dans la même situation.

Dans mon cas, j'avais besoin de vérifier si c'était nul ou une chaîne vide...alors j'ai implémenté comme ceci ci-dessous :

<%# Eval("DateString")!= null && Eval("DateString")!= ""? ""+Eval("DateString") + "":"" %>

Merci

0voto

Danial Points 9

Une autre façon de le mettre en œuvre:

public string nonImage() {
    string imgTag = "", Article_OwnerID = "", Article_ID = "", Article_OwnerType = "", imgSrc = "";
    DataTable DtArticles = SE_Article.GetArticlesList(UserID, UserID, ProfileType, CounterOfPage, CountPerPage, (short) SE_Action.OwnerType.user, SE_Security.CheckInjection(TxtSearch.Text.Trim()), CategoryID, "all_articles", DrpOrderBy.SelectedValue, DrpSort.SelectedValue);
    if (DtArticles != null && DtArticles.Rows.Count > 0) {
        Article_OwnerID = DtArticles.Rows[0]["Article_OwnerID"].ToString();
        Article_ID = DtArticles.Rows[0]["Article_ID"].ToString();
        Article_OwnerType = DtArticles.Rows[0]["Article_OwnerType"].ToString();
    }
    if (SE_Article.GetArticleCover(Convert.ToInt32(Article_OwnerID), Convert.ToInt32(Article_ID), Convert.ToInt16(Article_OwnerType)) != System.Configuration.ConfigurationManager.AppSettings["NoPhotoArticleThumb"]) {
        imgSrc = SE_Article.GetArticleCover(Convert.ToInt32(Article_OwnerID), Convert.ToInt32(Article_ID), Convert.ToInt16(Article_OwnerType));
        imgTag = "";
    }
    return imgTag;
 }

<% nonImage(); %>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X