如何使用ASP Expression访问ODS中的数据?

时间:2012-01-19 15:12:34

标签: asp.net gridview objectdatasource

如果我有以下(通用)ASP代码:

<asp:ObjectDataSource runat="server" ID="myODS">...</asp:ObjectDataSource>

<asp:GridView runat="server" ID="myGV" DataSourceID="myODS">
   <Columns>

      <asp:TemplateField>
         <ContentTemplate>
            <asp:Label runat="server" ID="myLabel" Text='<%# [What goes here?] %>' />
         </ContentTemplate>
      </asp:TemplateField>

      <asp:BoundField ... />
      <%-- Other columns... --%>

   </Columns>
</asp:GridView>

我可以在我的模板字段内的ASP表达式中调用哪些内容,以便我可以访问我的ODS结果?基本上,在表达式中,我想做row("ID")之类的操作,以便从我的ODS中的列中获取特定值。

1 个答案:

答案 0 :(得分:1)

您可以使用许多不同的语法来指定特定属性。最简单的方法是使用Eval方法:

    <asp:Label runat="server" ID="myLabel" Text='<%# Eval("ID") %>' />

这是使用DataBinder.Eval静态方法的更详细语法的简写语法,因此如果需要,可以使用这种更详细的语法:

    <asp:Label runat="server" ID="myLabel" Text='<%# DataBinder.Eval(Container.DataItem, "ID") %>' />
有关DataBinder.Eval的MSDN文档的

See here

编辑: 有一件事我忘了提到ASP.Net 2.0及更高版本支持“Bind”方法:

    <asp:Label runat="server" ID="myLabel" Text='<%# Bind("ID") %>' />

名义上支持双向数据绑定。因此,如果使用Bind方法,则不必手动从插入或删除的行中屏蔽您的值,ASP.Net基础结构将处理生成新对象或已修改对象。然而,在实践中,使用它有很多警告。您的域对象必须具有默认构造函数,只能由简单的属性组成,我认为还有一些。在实践中,这是如此限制,我不认为它是一个非常有用的东西。但我只是想指出来。