【问题标题】:Bind Property of Property to GridView将 Property 的属性绑定到 GridView
【发布时间】:2010-11-20 16:48:10
【问题描述】:

嘿,
我想在我的 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&lt;CartItem&gt;

这是课程

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 只显示一级属性,但我如何显示这些二级属性。

非常感谢, 文森特

【问题讨论】:

    标签: c# asp.net gridview datasource


    【解决方案1】:

    我认为你有两个选择:

    1. 向 CartItem 添加属性,用于代表电影对象的 Title 和 Price。
    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> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 2010-11-10
      相关资源
      最近更新 更多