Telerik对象数据源 - 访问复杂列表项

时间:2014-07-09 07:25:23

标签: telerik-reporting

如何访问复杂列表结构中的字段?

我有自定义对象数据源。但我无法访问嵌入列表。

我可以访问值主结构。 =Fields.ObjectId按预期工作。

但是如何访问子列表中的特定行?

我尝试了=fields.sublist[int].value并遇到了运行时错误。

  

"表达式包含当前未定义的对象1   。上下文"

尝试

psuedoCode

  

= Fields.BODPropValList。将[PropertyName(" XYZ&#34)]。值

我无法找到解释如何执行此操作的任何文档。

修改 我不想将它绑定到表,因为我需要从单个子行访问单个字段。

数据访问对象

  [DataObjectMethod(DataObjectMethodType.Select)]
   public List<BODRow> GetBODRowData(string dirId)        {
        .. code retrieves the list and delivers it..  
        return bodRowList;
    }
}

public class BODRow   {
    public string ObjectId { get ;set; } }
    public string DirId { get ; set; } }
    public string ViewDirId { get; set; }
    public  List<BODPropVal>  BODPropValList { get; set; }
    }
}

public class BODPropVal {

    public virtual string PropertyName { get; set; }
    public virtual string Value { get; set; }

}

2 个答案:

答案 0 :(得分:1)

找到了解决方案。 您可以调用添加到报告部分类部分的静态方法。 然后在表达式编辑器中,它可以被称为

=Namespace.Report.StaticMethod()

您甚至可以将参数传递给通话。 如果使用属性[DataObjectMethod(DataObjectMethodType.Select)]声明静态例程 它将出现在对象数据源

下的特殊方法列表中
namespace MyNameSpace.MyTelerikReportLibrary
{
[DataObject]
public class ReportDataSource {

[DataObjectMethod(DataObjectMethodType.Select)]
    public static string GetBodDataLabel(string propName, string lang)        {
        return "code that returns your text"
    }
{

enter image description here

enter image description here

答案 1 :(得分:0)

在Telerik的论坛上找到了这个。您似乎需要在List<BODPropVal>的默认构造函数中添加BODRow的初始化。

http://www.telerik.com/forums/bind-data-to-table-form-nested-objects-nested-list