如何访问复杂列表结构中的字段?
我有自定义对象数据源。但我无法访问嵌入列表。
我可以访问值主结构。 =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; }
}
答案 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"
}
{
答案 1 :(得分:0)
在Telerik的论坛上找到了这个。您似乎需要在List<BODPropVal>
的默认构造函数中添加BODRow
的初始化。
http://www.telerik.com/forums/bind-data-to-table-form-nested-objects-nested-list