Методы привязки данных, такие как Eval(), XPath() и Bind(), могут использоваться только в контексте управления базой данных
Я получаю следующую ошибку
Способы привязки данных, такие как Eval(), XPath() и Bind(), могут использоваться только в контексте управления базой данных.
но все, что я пытаюсь сделать, находится внутри элемента управления ASP.NET REPEATER
<% if ( Eval("Message").ToString() == HttpContext.Current.Profile.UserName) %>
<% { %>
<asp:ImageButton runat="server" etc.... />
<% } %>
Ответы
Ответ 1
Синтаксис
<%# Eval("...") %>
Вы можете сделать что-то вроде
<asp:ImageButton Visible='<%# ShowImg(Eval(Container.DataItem,"Message")) %>' />
и в вашем коде:
boolean ShowImg(string msg)
{
return (msg == HttpContext.Current.Profile.UserName);
}
Ответ 2
Альтернативой является следующее:
<asp:ImageButton runat="server" Visible='<%# Eval("Message").ToString() == HttpContext.Current.Profile.UserName %>' />
Тогда код не нужен.
Ответ 3
Слишком поздно, но я бы хотел ответить на мой вопрос, что я использовал для этого:
<%# Eval("Message").toString()== HttpContext.Current.Profile.UserName)?"<asp:ImageButton runat="server" etc.... />" :""%>
Теперь отображается только кнопка изображения, если сообщение равно имени пользователя.
Это может помочь любому другому в той же ситуации.
В моей ситуации мне нужно было проверить нулевую и пустую строку... поэтому я реализовал, как показано ниже:
<%# Eval("DateString")!= null && Eval("DateString")!= ""? "<span class='date'>"+Eval("DateString") + "</span>":"" %>
Спасибо
Ответ 4
Другой способ его реализации:
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(); %>