Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 评估对象属性_C#_Asp.net - Fatal编程技术网

C# 评估对象属性

C# 评估对象属性,c#,asp.net,C#,Asp.net,我有以下两个对象 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

我有以下两个对象

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();
我想做的是访问每个ProgramObj中PersonObj的全名属性 我已经尝试了多种方法,唯一能让我获得输出值的方法是

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



但我得到一个错误,它无法将DataRecordInternal类型的对象强制转换为PersonObj。想法?

如果您这样做,您的ItemDataBound应该可以工作:

PersonObj myPerson = ((ProgramObj)e.Item.DataItem).myPerson;
lblUserName.Text = myPerson.full_name;
由于中继器绑定到ProgramObj对象列表,因此数据项将是ProgramObj。因此,如果需要PersonObj对象,则需要获取myPerson属性。

请参阅asp.net上的文章。另外,请参见此处的问题

PersonObj myPerson = (PersonObj)e.Item.DataItem;
lblUserName.Text = myPerson.Full_Name_RFL;
<%# DataBinder.Eval(Container.DataItem, "myPerson") %>
PersonObj myPerson = ((ProgramObj)e.Item.DataItem).myPerson;
lblUserName.Text = myPerson.full_name;