请问级联在前台如何绑定

0 views
Skip to first unread message

jerry...@gmail.com

unread,
Dec 5, 2006, 10:33:52 PM12/5/06
to NBear Google Group
以NBearV3\tutorials\IoC_Tutorial做为例子
____________________________________________
Default2.cs:
IProductService ps = factory.GetService<IProductService>();
Product[] products = ps.GetAllProducts();
this.GridView1.DataSource = products;
this.GridView1.DataBind();
____________________________________________

Default2.aspx:
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="productname" />
<asp:BoundField DataField="categoryname" />
</Columns>
</asp:GridView>

提示没有categoryname字段, LazyLoad =
false应该products实例化后products.Category.CategoryId和products.Category.CategoryName也取出来了
有什么方法在前台显示products.Category.CategoryName吗?

锦瑟

unread,
Dec 13, 2006, 11:37:45 AM12/13/06
to NBear Google Group
据我的感觉这样恐怕是不行的......你在一个grid里绑定了2个实体的字段,可能要建View,然后为他们生成一个新的实体。

我随便说说,等待Teddy的答复。

Teddy

unread,
Dec 13, 2006, 8:33:28 PM12/13/06
to nbear...@googlegroups.com
如果这样的绑定很常用,可以在Entities工程的一个独立的cs文件中,写一个partial Product类来为Product扩展一个CategoryName属性:
 
public partial Product : NBear.Common.Entity
{
  public string CategoryName
  {
    get
    {
      return this.Category.CategoryName;
    }
  }
}
 
这样你的代码就能正常运行了。
 
Teddy
 

Teddy

unread,
Dec 25, 2006, 11:10:56 PM12/25/06
to nbear...@googlegroups.com
GridView也可以使用TemplateField进行任意的强类型的绑定:
 
例如,对下面的类Test:
 

public class Test
{
    public string Name
    {
        get
        {
            return "name";
        }
    }

    public Test Test2
    {
        get
        {
            return new Test();
        }
    }
}

如果我们把他的一个数组邦定到GridView,可以,通过TemplateField绑定Test.Test2.Name如下:
 
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
            <Columns>
                <asp:TemplateField HeaderText="test"><ItemTemplate><%# ((Test)Container.DataItem).Test2.Name %></ItemTemplate></asp:TemplateField>
            </Columns>
        </asp:GridView>

Teddy
Reply all
Reply to author
Forward
0 new messages