2014-10-05 58 views
1

我是telerik报告的新手,我在使用ObjectDataSource的ASP.Net MVC 4中创建了简单的报告。我创建了一个模型类像下面无法将参数传递给使用ObjectDataSource的telerik报告

[DataObject] 
public class StockMonitoring 
{ 

    [DataObjectMethod(DataObjectMethodType.Select)] 
    public List<StockDetail> GetExpiredDrugBrand(int SiteID) 
    { 
     //returns list by calling stored procedure which takes SiteID 
    } 
} 

在控制器我使用这个代码:

using Telerik.Reporting; 
.......... 
............ 
TypeReportSource Source = new TypeReportSource(); 
Source.TypeName = typeof(StockMonitoring_Expired).AssemblyQualifiedName; 
Source.Parameters.Add(new Parameter("SiteID", SID)); 
ViewBag.ReportSource = Source; 

,并考虑下面的代码:

@(Html.TelerikReporting().ReportViewer()  
    .Id("reportViewer1") 
    .ServiceUrl("/api/reports/") 
    .TemplateUrl("/ReportViewer/templates/telerikReportViewerTemplate-8.1.14.804.html") 
    .ReportSource((ReportSource) ViewBag.ReportSource) 
    .ViewMode(ViewModes.INTERACTIVE) 
    .ScaleMode(ScaleModes.SPECIFIC) 
    .Scale(1.0) 
    .PersistSession(false) 
    ) 

当我注释此行

Source.Parameters.Add(new Parameter("SiteID", SID)); 

and set design我的报告“SiteMonitoring_Expired”在VS 2012中创建的时间值我上面的代码正常工作,并且断点击中模型中的“GetExpiredDrugBrand”方法,但是当我取消注释上面的行并删除SiteID的设计时值时,我的代码给出下面的错误:

An error has occurred while processing Table 'table1': An error has occurred while resolving 'ObjectDataSource' data source: Cannot convert to type System.Int32 

我无法SITEID参数传递给我的“GetExpiredDrugBrand”方法,这反过来又调用的存储过程以检索数据。我阅读telerik报告文档,但无法找出问题。代码有什么问题?

谢谢您提前......

回答

相关问题