数据绑定方法(如Eval(),XPath()和Bind())只能在数据绑定控件的上下文中使用

Dan*_*Dan 34 asp.net repeater eval

我收到以下错误

数据绑定方法(如Eval(),XPath()和Bind())只能在数据绑定控件的上下文中使用.

但我想要做的就是在ASP.NET REPEATER控件中

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

           <asp:ImageButton runat="server" etc.... />
<% } %>
Run Code Online (Sandbox Code Playgroud)

Ste*_*eve 46

语法是

<%# Eval("...") %>
Run Code Online (Sandbox Code Playgroud)

你可以做点什么

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

在你的代码隐藏中:

boolean ShowImg(string msg)
{
     return (msg == HttpContext.Current.Profile.UserName);
}
Run Code Online (Sandbox Code Playgroud)

  • 对于类似的情况,我必须完全指定DataBinder,如:`DataBinder.Eval(Container.DataItem,"Message")`. (4认同)

小智 27

另一种选择是:

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

然后就不需要代码了.