2013-05-07 46 views
0

我很难试图绑定DetailsView EditTemplateField中的一个属性。这里是我的数据结构:ASP.NET C# - 在另一个对象内的对象属性上的数据绑定

Class1{ 
public int idClass { get; set; } 
public Class2 classObject { get; set; } 

} 

Class2 { 
public int idClass2 { get; set;} 
} 

Class1是与下拉列表关联的ObjectDataSource DataObjectTypeName。 我想要一个下拉列表值绑定到idClass2这样的:

Bind("classObject.idClass2"); 

回答

1

你不能。 AFAIK你只能使用嵌套对象的Eval(单向绑定)。反正你可以做的是修改第一类与新的属性:

Class1{ 
    public int idClass { get; set; } 
    public Class2 classObject { get; set; } 

    public int idClass2 { 
    get { return classObject.idClass2; } 
    set { classObject.idClass2 = value; } 
    } 
} 

,并将其绑定:Bind(idClass2)

0

是绝对有必要有idClass2在一个单独的类?如果这是Class2中的唯一属性,那么为什么不将该属性添加到Class1?

即使你

否则,我认为你需要提取对象的Class2,然后绑定它像这样

var _classObject = class1.classObject; 
Bind("_classObject.idClass2"); 
0

你可以做一个“普通”对象

Class1{ 
    public Class2 class2 { get; set; } 
    public int Var { get; set; } 
    public int InnerVar { get { return class2.Var; } } 
} 

Class2{ 
    public int Var { get; set; } 
} 

然后您可以使用Class1 InnerVar访问Class2中的Var。

0

当你创建一个对象classObject时,你还应该创建所有类的对象。通过这种方式,你可以访问classObject.idClass2,如果你不做idClass2的对象,你会得到空例外。

相关问题