加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 00:27:04 所属栏目:asp.Net 来源:网络整理
导读:我如何从codebehind调用Eval()?我知道这是像DataBinder.Eval(Container.DataItem,“name”)这样的前端快捷方式,但是我无法得到这个坏的东西来编译。我想,我错过了正确的方法参数。我想转一下这样的东西: asp:Image ID="imgLogo" runat="server" ImageUr
我如何从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)。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读