asp.net – 如何在codebehind中调用Eval?

我如何从codebehind调用Eval()?我知道这是像DataBinder.Eval(Container.DataItem,“name”)这样的前端快捷方式,但是我无法得到这个坏的东西来编译。我想,我错过了正确的方法参数。我想转一下这样的东西:
<asp:Image ID="imglogo" runat="server" ImageUrl='<%# Eval("name") %>'/>

成:

<asp:Image ID="imglogo" runat="server" ImageUrl='<%# GetimagePath(???) %>'/>

w /代码隐藏:

protected string GetimagePath(????)
{
    //some code
    return "some/logical/path" + Eval("name");
}

asp:图像控件位于一个sqlDataReader绑定的中继器中。

解决方法

Eval是一个页面上的方法(在TemplateControl实际上,这意味着它也存在于UserControl上)。所以你不需要传递任何特殊的参数:
protected string GetimagePath()
{
    //some code
    return "some/logical/path" + Eval("name");
}

注意:您只能在数据绑定时调用Eval,但这是<%#Eval(...)%>也不应该造成问题。

如果你想要绑定的实际对象,使用GetDataItem(),因为Eval(x)基本上意味着DataBinder.Eval(GetDataItem(),x)。

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...