c# - asp :ListView 中当前项目的 Eval()

标签 c# asp.net listview

在 ASP:ListView 中,我想将整个对象传递给 ItemTemplate 中的子控件,而不仅仅是当前对象的单个属性。

这是我要使用的代码:

<asp:ListView ID="answers" runat="server">
    <LayoutTemplate>
       <div id="itemPlaceholder" runat="server" />
    </LayoutTemplate>
    <ItemTemplate>
       <div>
          <uc2:DocumentHeader runat="server" Document="Eval(%# Eval("this") %> />
               <p><%# Eval("Body") %></p>
        </div>
     </ItemTemplate>
</asp:ListView>

DocumentHeader 的 Document 属性需要整个 Document 对象,而“Body”是 Document 的一个属性。

显然,我可以只在 Document 中创建一个新属性或使用 LINQ 查询生成一个具有我想要的属性的新类,我只是想知道是否有更简单、更直接的方法来获得我想要的东西。

最佳答案

您可以使用 <%# Container.DataItem %> 绑定(bind)上下文对象。您可能需要将其转换为“文档”所期望的任何内容。

<asp:ListView ID="answers" runat="server">
    <LayoutTemplate>
       <div id="itemPlaceholder" runat="server" />
    </LayoutTemplate>
    <ItemTemplate>
       <div>
          <uc2:DocumentHeader runat="server" Document="<%# Container.DataItem %>" />
          <p><%# Eval("Body") %></p>
        </div>
     </ItemTemplate>
</asp:ListView>

关于c# - asp :ListView 中当前项目的 Eval(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1947963/

相关文章:

c# - 使用具有一对多关系的实体列表的属性更新数据库上的实体

c# - 集成学习,多分类器系统

java - 通过数据库从另一个 Activity 的 ListView 中删除项目

android - 以与用户手指在布局上移动相同的速度更改相对布局的高度

android 使用自定义适配器更改 ListView 中的列表项

c# - Where 方法如何运行?

c# - 在 C# 中锁定静态方法

asp.net - 找不到 ID 为 'xxx' 的 UpdatePanel 。如果它是动态更新的,那么它必须位于另一个 UpdatePanel 内

asp.net - 直接通过 iisexpress.exe 启动网站时出现 HTTP 500.21 错误

java - 将 XmlSerializer 代码从 java 转换为 C#