<%# Container.DataItem.ProductName.ToString() %>

解决方案 »

  1.   

    还是不行。
    编译器错误信息: CS0117: “object”并不包含对“ProductName”的定义
      

  2.   

    <%# Container.DataItem.ProductName %>
    ==>
    <%# DataBinder.Eval(Container.DataItem, "ProductName") %>
      

  3.   

    You didn't define property ProductName and Price correctly in your class.You have to use Get and Set in order to use its property,OK?
      

  4.   

    exboy(百分之七十八) :
    也不行。
      

  5.   

    <ItemTemplate>
    <%# DataBinder.Eval(Container, "DataItem.ProductName") %> - <%# DataBinder.Eval(Container, "DataItem.Price","{0:c}") %>
    </ItemTemplate>
      

  6.   

    hotact(林康) :
    还是报错:
    -------------------
    DataBinder.Eval:“ASP.MultiArrayListA_aspx+Product”不包含名称为 ProductName 的属性。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: DataBinder.Eval:“ASP.MultiArrayListA_aspx+Product”不包含名称为 ProductName 的属性。源错误: 
    行 31:   Runat="Server">
    行 32: <itemTemplate>
    行 33: <%# DataBinder.Eval(Container, "DataItem.ProductName") %>
    To Johnnyzhu316() :
    改成这样也报错:
    <Script Language="C#" Runat="Server">
    public class Product
    {
    private string productName;
    private decimal price;
    public Product():base()
    {
    }
    public Product(string ProductName,decimal Price):base()
    {
    this.ProductName=ProductName;
    this.Price=Price;
    }
    public string ProductName
    {
    get { return productName;}
    set { productName=value;}
    }
    public string Price
    {
    get { return price; }
    set { price = value; }
    }
    }
    void Page_Load(object sender,EventArgs e)
    {
    ArrayList arrlist=new ArrayList();
    arrlist.Add( new Product( "eggs", 2.10m ) );
    arrlist.Add( new Product( "milk", 3.24m ) );
    dlstDataList.DataSource = arrlist;
    dlstDataList.DataBind();
    }
    </Script><html>
    <head><title>MultiArrayList.aspx</title></head>
    <body><asp:DataList
      ID="dlstDataList"
      Runat="Server">
    <itemTemplate>
      <%# Container.DataItem.ProductName.ToString() %>
      - <%# String.Format( "{0:c}", Container.DataItem.Price.ToString() ) %>
    </itemTemplate>
    </asp:DataList></body>
    </html>错误如下:
    编译器错误信息: CS0117: “object”并不包含对“ProductName”的定义源错误: 行 41:   Runat="Server">
    行 42: <itemTemplate>
    行 43:   <%# Container.DataItem.ProductName.ToString() %>
      

  7.   

    终于解决了:
    主要是需要加类名Product以转换:
    <%# ((Product)Container.DataItem).ProductName %>-
    <%# String.Format("{0:c}",((Product)Container.DataItem).Price) %>
      

  8.   

    发现一个很奇怪的问题:
    如果将ProductName及Price写成属性时,如下:
    public class Product
    {
    private string productName;
    private decimal price;
    public Product():base()
    {
    }
    public Product(string ProductName,decimal Price):base()
    {
    this.ProductName=ProductName;
    this.Price=Price;
    }
    public string ProductName
    {
    get { return productName;}
    set { productName=value;}
    }
    public decimal Price
    {
    get { return price; }
    set { price = value; }
    }
    }
    结果:
    eggs - 2.10  
    milk - 3.24  而不采用属性时,结果返回本地化货币值:
    eggs- ¥2.10  
    milk- ¥3.24  
    代码如下:
    public class Product
    {
    public string ProductName;
    public decimal Price;
    public Product():base()
    {
    }
    public Product(string ProductName,decimal Price):base()
    {
    this.ProductName=ProductName;
    this.Price=Price;
    }
    }很奇怪!!!!