Методы привязки данных, такие как Eval (), XPath () и Bind (), могут использоваться только в контексте элемента управления, связанного с данными - PullRequest
33 голосов
/ 03 апреля 2010

Я получаю следующую ошибку

Методы привязки данных, такие как Eval (), XPath () и Bind (), могут использоваться только в контексте элемента управления с привязкой к данным.

но все, что я пытаюсь сделать, это внутри элемента управления REPEATER ASP.NET

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

           <asp:ImageButton runat="server" etc.... />
<% } %>

Ответы [ 4 ]

45 голосов
/ 03 апреля 2010

Синтаксис

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

Вы могли бы сделать что-то вроде

<asp:ImageButton Visible='<%# ShowImg(Eval(Container.DataItem,"Message")) %>' />

и в вашем коде:

boolean ShowImg(string msg)
{
     return (msg == HttpContext.Current.Profile.UserName);
}
27 голосов
/ 16 апреля 2010

Альтернатива такова:

<asp:ImageButton runat="server" Visible='<%# Eval("Message").ToString() == HttpContext.Current.Profile.UserName %>' />

Тогда код не нужен.

2 голосов
/ 11 декабря 2015

Слишком поздно, но я хотел бы ответить на него по-своему, что я использовал для достижения этого:

<%# Eval("Message").toString()== HttpContext.Current.Profile.UserName)?"<asp:ImageButton runat="server" etc.... />" :""%>

Теперь кнопка изображения будет отображаться только в том случае, если сообщение равно имени пользователя.

Это может помочь любому другому в такой же ситуации.

В моей ситуации мне нужно было проверить пустую и пустую строку ... поэтому я реализовал это следующим образом:

<%# Eval("DateString")!= null && Eval("DateString")!= ""? "<span class='date'>"+Eval("DateString") + "</span>":"" %>

Спасибо

1 голос
/ 28 июля 2015

Еще один способ реализовать это:

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 = "<img class='img_article_cover' src='" + imgSrc + "' alt='مقاله" + Article_ID + "' />";
    }
    return imgTag;
 }


 <% nonImage(); %>
...