ASP.NET C# - 对另一个对象内的对象属性的数据绑定

时间:2013-05-07 21:07:18

标签: c# asp.net data-binding objectdatasource detailsview

我很难尝试在DetailsView EditTemplateField中绑定属性。这是我的数据结构:

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

}

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

Class1是与下拉列表关联的ObjectDataSource DataObjectTypeName。 我正在尝试将Dropdownlist Value绑定到idClass2,如下所示:

Bind("classObject.idClass2");

4 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

是否必须将idClass2放在一个单独的类中?如果这是Class2中唯一的属性,为什么不将属性添加到Class1?

即使你

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

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

答案 2 :(得分: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。

答案 3 :(得分:0)

当您创建classObject对象时,您还应该创建其中所有类的对象。通过这种方式,您可以访问classObject.idClass2,如果您不使idClass2成为对象,您将获得Null Exception。