2012-02-02 71 views
0

我有以下两个对象EVAL对象属性

public partial class ProgramObj 
{ 
    public int id; 
    public PersonObj myPerson; 
} 

public class PersonObj 
{ 
    public int id; 
    public string full_name; 
} 

我从一个SqlDataReader分配ProgramObj的名单到中继

program_list.DataSource = reader; 
program_list.DataBind(); 

我想要做什么,是访问FULL_NAME属性PersonObj在每个ProgramObj 我试过了很多东西,唯一让我输出的值是

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

这让我的ProgramObj的ID,但我想获得personObj对象的名字,我想

<%# DataBinder.Eval(Container.DataItem, "myPerson.full_name") %> 

会的工作,但它似乎并没有得到我的任何地方。

我也尝试了用的ItemDataBound

PersonObj myPerson = (PersonObj)e.Item.DataItem; 
lblUserName.Text = myPerson.Full_Name_RFL; 

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

,但我得到一个错误,它不能施放型DataRecordInternal的目的是personObj对象。想法?

PersonObj myPerson = ((ProgramObj)e.Item.DataItem).myPerson; 
lblUserName.Text = myPerson.full_name; 

Becausse中继势必ProgramObj列表对象的DataItem将是ProgramObj:如果你这样做

回答

1

你的ItemDataBound应该工作。所以如果需要PersonObj对象,那么您需要获取myPerson属性。

+0

完美,谢谢 – Josh 2012-02-02 22:37:58