这个VB.Net的asp.net程序改为C#的就报错!怎么回事? <%# Container.DataItem.ProductName.ToString() %> 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还是不行。编译器错误信息: CS0117: “object”并不包含对“ProductName”的定义 <%# Container.DataItem.ProductName %>==><%# DataBinder.Eval(Container.DataItem, "ProductName") %> 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? exboy(百分之七十八) :也不行。 <ItemTemplate> <%# DataBinder.Eval(Container, "DataItem.ProductName") %> - <%# DataBinder.Eval(Container, "DataItem.Price","{0:c}") %></ItemTemplate> 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() %> 终于解决了:主要是需要加类名Product以转换:<%# ((Product)Container.DataItem).ProductName %>-<%# String.Format("{0:c}",((Product)Container.DataItem).Price) %> 发现一个很奇怪的问题:如果将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; }}很奇怪!!!! 一个对象怎么分类,粒度问题。 请问一下,这个代码,写的是不是没有C#代码的风格? 在VS2008中各个功能模块已经做好了(如博客,论坛,网盘等)也可以运行,怎么把它们组合成一个完整的网站 RegisterStartupScript 在google 中无效 关于一个搜索引擎的UML建模,请大家指点 框架页面中如何根据ID给另一个链接页面的img控件赋值 怎样在ASP.NET中使用SQL2003. datagrid编辑数据问题 安装enterprise library 2006出现的问题 创建控件时出错,高手请看看. 分页问题 ASP.NET能做到真正的页面与操作分离吗?
编译器错误信息: CS0117: “object”并不包含对“ProductName”的定义
==>
<%# DataBinder.Eval(Container.DataItem, "ProductName") %>
也不行。
<%# DataBinder.Eval(Container, "DataItem.ProductName") %> - <%# DataBinder.Eval(Container, "DataItem.Price","{0:c}") %>
</ItemTemplate>
还是报错:
-------------------
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() %>
主要是需要加类名Product以转换:
<%# ((Product)Container.DataItem).ProductName %>-
<%# String.Format("{0:c}",((Product)Container.DataItem).Price) %>
如果将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;
}
}很奇怪!!!!