将非属性绑定到datagrid列DataField?

时间:2011-03-31 18:23:59

标签: c# asp.net data-binding datagrid

假设我有一个类似于:

的DataGrid
<asp:DataGrid ID="SomeDataGrid" runat="server">
    <Columns>
        <asp:BoundColumn HeaderText="A Header" SortExpression="Sort" DataField="Data"></asp:BoundColumn>
    </Columns>
</asp:DataGrid>

在这个Grid中,我将数据源设置为一个包含名为“Data”的公共属性的集合,然后执行databind()。每一个都按预期工作。

现在假设我想将列的DataField属性设置为公共成员,属性或我计算的其他东西。在不创建中间对象或向集合中的对象添加公共属性的情况下,最简单的方法是什么?

所以我想做的是:

<asp:BoundColumn HeaderText="A Header" SortExpression="Sort" DataField="someMethod()"></asp:BoundColumn>

1 个答案:

答案 0 :(得分:3)

使用TemplateColumn

<asp:TemplateColumn HeaderText="Test">
<ItemTemplate>
<asp:Label runat="server" Text='<%# SomeMethod() %>'></asp:Label>  
</ItemTemplate>
</asp:TemplateColumn>