2014-07-09 59 views
1

如何訪問複雜列表結構中的字段?Telerik對象數據源 - 訪問複雜列表項

我有自定義的對象數據源工作。但我不能訪問嵌入式列表。

我可以訪問值的主要結構。 =Fields.ObjectId按預期工作。

但是,我如何訪問一個特定的行子列表?我試過=fields.sublist[int].value,並且運行時錯誤。

「該表達式包含在當前的 上下文中沒有定義的對象1。的

僞碼什麼IM試圖

= Fields.BODPropValList [屬性名( 「XYZ」)。價值

我找不到任何解釋實況如何做到這一點。

編輯: 我不想將它綁定到表,因爲我需要從單個子行訪問單個字段。

數據訪問對象

[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; } 

} 

回答

1

找到了解決辦法。 您可以調用您添加到報告partial部分的靜態方法。 然後在表達式編輯器它可以被稱爲

=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

+0

你能展示你爲此創建的靜態方法的例子嗎? – Baby