项目与容器数据项目与评估



我从.NET 2.0迁移到.NET 4.5,并且我可以选择从EvalContainer.DataItem切换到ItemType+Item。但是性能呢?Item是如何在内部实现的?它是基于Container.DataItem还是Eval或其他什么?

更新

根据下面的链接,Container.DataItem在运行时将使用反射,ItemType将在运行时保存此步骤,因此ItemType应该比Container.DataItem更具性能

ASP.NET 4.5和Visual Studio 2012的新增功能


以前,当使用GridView等模板控件时,您会使用类似以下语法声明项:<%# DataBinder.Eval(Container.DataItem, "Price") %>有了这种语法,很容易出错,比如打字错误,IDE直到运行时才知道要绑定的类型。ASP.Net 4.5通过允许您指定项目的类型来解决这些问题语法如下<%# Item.ID>这是两种语法之间的主要区别。

关于如何在.net 4.5中实现第一个你阻抗类

(我将以GridView为例)

public class SalesPerson
{
  public string SalesPersonID { get; set; }
  public string     FirstName { get; set; }
  public string      LastName { get; set; }
}

接下来您确定ItemType

<asp:GridView ID="GridView1" runat="server"
              AutoGenerateColumns="false"
              DataKeyNames="SalesID"
              SelectMethod="yourGetMethod"
              UpdateMethod="yourUpdateMethod"
              ItemType="SalesPerson">
  <Columns>
    <asp:TemplateField HeaderText="">
      <ItemTemplate>
        <asp:Label ID="Label1" runat="server"
                   Text='<%# Item.SalesID %>'></asp:Label>
      </ItemTemplate>
      <EditItemTemplate>
        <asp:Label ID="Label4" runat="server"
                   Text='<%# Item.SalesID %>'></asp:Label>
      </EditItemTemplate>
    </asp:TemplateField>

结论Container.DataItem在.net 4.5中被替换为ItemType,以解决作为键入问题的错误问题,使用ItemType编译器可以检测是否有任何错误作为键入错误

相关内容

最新更新