嘿,
我想在Gridview中显示一部电影的标题和价格。标题和价格是类中的属性Movie和Movie是CartItem类的属性。
这是我的gridview代码
<asp:GridView ID="gvShoppingCart" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Title" HeaderText="Title" />
<asp:BoundField DataField="Price" HeaderText="Price" />
</Columns>
</asp:GridView>
我的gridview的DataSource是List<CartItem>
。
这是课程
public class CartItem
{
private Movie _movieInCart;
private int _Count;
public CartItem()
{ }
public CartItem(Movie movie, int count)
{
_movieInCart = movie;
_count= count;
}
public Film MovieInCart
{
get { return _movieInCart; }
set { _movieInCart = value; }
}
public int Count
{
get { return _count; }
set { _count = value; }
}
public double getSubTotal()
{
return _movieInCart.Price * _count;
}
}
public class Movie
{
private string _title;
private double _price;
public string Title
{
get { return _title; }
set { _title= value; }
}
public double Price
{
get { return _price; }
set { _price= value; }
}
//More properties here
}
显然GridView只显示第一级属性,但是如何显示这些第二级属性。
非常感谢, 文森特
答案 0 :(得分:2)
我认为你有两个选择:
TemplateField
代替BoundField
。选项1:
public string Title
{
return _movieInCart != null ? _movieInCart.Title : null;
}
选项2:(请参阅reference)
<asp:TemplateField HeaderText="Title">
<ItemTemplate>
<asp:Label
runat="server"
Text='<%# Bind("MovieInCart.Title") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>