Telerik报告中的索引超出范围错误

Telerik报告中的索引超出范围错误,telerik,arguments,telerik-reporting,server-error,Telerik,Arguments,Telerik Reporting,Server Error,“/”应用程序中出现服务器错误 例外情况详情: System.ArgumentOutOfRangeException:索引超出范围。必须是 非负数且小于集合的大小。参数名称: 索引 源错误: 在执行过程中生成了未处理的异常 当前web请求。关于货物来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常 堆栈跟踪: [ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the

“/”应用程序中出现服务器错误

例外情况详情:

System.ArgumentOutOfRangeException:索引超出范围。必须是 非负数且小于集合的大小。参数名称: 索引

源错误:

在执行过程中生成了未处理的异常 当前web请求。关于货物来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常

堆栈跟踪:

[ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index]
   System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) +67
   System.ThrowHelper.ThrowArgumentOutOfRangeException() +16
   System.Collections.Generic.List`1.get_Item(Int32 index) +19
   Telerik.Reporting.HtmlRendering.HtmlElementRenderer.GetEndElement(ProcessingElement startElement) +267
   Telerik.Reporting.HtmlRendering.HtmlElementRenderer.BeginRender(HtmlRenderingContext context) +382
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +17
   Telerik.Reporting.HtmlRendering.ContainerElementRenderer.Render(HtmlRenderingContext context) +108
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +26
   Telerik.Reporting.HtmlRendering.ContainerElementRenderer.Render(HtmlRenderingContext context) +108
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +26
   Telerik.Reporting.HtmlRendering.ContainerElementRenderer.Render(HtmlRenderingContext context) +108
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +26
   Telerik.Reporting.HtmlRendering.ContainerElementRenderer.Render(HtmlRenderingContext context) +108
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +26
   Telerik.Reporting.HtmlRendering.ContainerElementRenderer.Render(HtmlRenderingContext context) +108
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +26
   Telerik.Reporting.HtmlRendering.ContainerElementRenderer.Render(HtmlRenderingContext context) +108
   Telerik.Reporting.HtmlRendering.BaseElementRenderer.RenderToHtml(HtmlRenderingContext context) +26
   Telerik.Reporting.HtmlRendering.HtmlTextBoxRenderer.RenderInternal(ProcessingElement processingElement, HtmlRenderingContext context) +163
   Telerik.Reporting.HtmlRendering.HtmlItemRender.Telerik.Reporting.HtmlRendering.IReportItemRender.Render(ProcessingElement processingElement, RenderingContext context) +92
   Telerik.Reporting.HtmlRendering.RenderingContext.Render(ReportItemBase item) +50
   Telerik.Reporting.HtmlRendering.Matrix.RenderInternal(HtmlRenderingContext context) +3645
   Telerik.Reporting.HtmlRendering.Matrix.Render(HtmlRenderingContext context) +40
   Telerik.Reporting.HtmlRendering.ReportSectionBaseRenderer.RenderInternal(ProcessingElement processingElement, HtmlRenderingContext context) +69
   Telerik.Reporting.HtmlRendering.HtmlItemRender.Telerik.Reporting.HtmlRendering.IReportItemRender.Render(ProcessingElement processingElement, RenderingContext context) +92
   Telerik.Reporting.HtmlRendering.RenderingContext.Render(ReportItemBase item) +50
   Telerik.Reporting.HtmlRendering.HtmlPage.RenderReportSections(HtmlWriter bodyWriter) +557
   Telerik.Reporting.HtmlRendering.HtmlPage.RenderBody(HtmlWriter bodyWriter) +320
   Telerik.Reporting.HtmlRendering.HtmlPage.Render(HtmlTextWriter primaryWriter, HtmlRenderingContext renderingContext) +112
   Telerik.Reporting.HtmlRendering.HtmlReport.Render(HtmlTextWriter writer, Int32 startPage, Int32 endPage) +304
   Telerik.Reporting.HtmlRendering.HtmlReport.Render(HtmlTextWriter writer) +56
   Telerik.Reporting.HtmlRendering.HtmlRenderingExtension.Telerik.Reporting.Processing.IRenderingExtension.Render(Report report, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback, EvaluateHeaderFooterExpressions evalHeaderFooterCallback) +134
   Telerik.Reporting.Processing.ReportProcessor.Render(IList`1 reports, ExtensionInfo extensionInfo, Hashtable renderingContext, Hashtable deviceInfo, CreateStream createStreamCallback) +352
   Telerik.Reporting.Processing.ReportProcessor.RenderReport(String format, IReportDocument reportDocument, Hashtable deviceInfo, CreateStream createStreamCallback, String& documentName) +421
   Telerik.ReportViewer.WebForms.ServerReport.Render(HttpResponse response, String format, Int32 pageIndex) in c:\Projects\Reporting\FromSC_scrum\@ReportingBuild\Reporting_Build\Net20\Telerik.ReportViewer.WebForms\ServerReport.cs:90
   Telerik.ReportViewer.WebForms.ReportPageOperation.PerformOperation(NameValueCollection urlQuery, HttpContext context) in c:\Projects\Reporting\FromSC_scrum\@ReportingBuild\Reporting_Build\Net20\Telerik.ReportViewer.WebForms\ReportPageOperation.cs:25
   Telerik.ReportViewer.WebForms.HttpHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) in c:\Projects\Reporting\FromSC_scrum\@ReportingBuild\Reporting_Build\Net20\Telerik.ReportViewer.WebForms\HttpHandler.cs:59
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +705
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +137
我在Telerik Report viewer中遇到此错误。 仅针对特定条件而不是所有值获取此错误

我错过了什么


请帮帮我。

我也有同样的问题。我还没有弄清楚它的起源,但我想它来自数据源绑定。在报表上创建新实例时,它会在InitializeComponent()方法中创建默认控件(例如,包含0行的列表或不包含文本的文本框)。当您绑定数据源(例如,包含3项的列表)时,它会引用列表(Telerik Reporting control),并尝试将包含3项的集合绑定到包含0行的控件。因此,在本例中,您有OutOfRange异常。我想大概是这样吧


UPD:事实上,我昨天已经解决了我的问题。这都是因为我试图将空集合绑定为控件的数据源。如果我的集合在绑定之前不包含元素,我只是将默认对象(带有空属性)添加到集合中。

我也有同样的问题。我还没有弄清楚它的起源,但我想它来自数据源绑定。在报表上创建新实例时,它会在InitializeComponent()方法中创建默认控件(例如,包含0行的列表或不包含文本的文本框)。当您绑定数据源(例如,包含3项的列表)时,它会引用列表(Telerik Reporting control),并尝试将包含3项的集合绑定到包含0行的控件。因此,在本例中,您有OutOfRange异常。我想大概是这样吧


UPD:事实上,我昨天已经解决了我的问题。这都是因为我试图将空集合绑定为控件的数据源。如果我的集合在绑定之前不包含元素,我只是将默认对象(具有空属性)添加到集合中。

我们间歇性地遇到类似的问题。清除Telerik状态数据库表有时似乎可以解决这一问题。您可以在下面的脚本中将
@Condition
翻转到
1
,以执行删除

DECLARE @Condition AS BIT = 0;
IF @Condition = 1
BEGIN
    DELETE dbo.tr_AppLock;
    DELETE dbo.tr_Object;
    DELETE dbo.tr_Set;
    DELETE dbo.tr_String;
END;

SELECT *
FROM dbo.tr_AppLock AS tal;

SELECT *
FROM dbo.tr_Object AS tob;

SELECT *
FROM dbo.tr_Set AS ts;

SELECT *
FROM dbo.tr_String AS ts;

我们间歇性地遇到一个非常类似的问题。清除Telerik状态数据库表有时似乎可以解决这一问题。您可以在下面的脚本中将
@Condition
翻转到
1
,以执行删除

DECLARE @Condition AS BIT = 0;
IF @Condition = 1
BEGIN
    DELETE dbo.tr_AppLock;
    DELETE dbo.tr_Object;
    DELETE dbo.tr_Set;
    DELETE dbo.tr_String;
END;

SELECT *
FROM dbo.tr_AppLock AS tal;

SELECT *
FROM dbo.tr_Object AS tob;

SELECT *
FROM dbo.tr_Set AS ts;

SELECT *
FROM dbo.tr_String AS ts;

检查您是否可以在Telerik报表设计器中预览报表

我在运行代码时看到了相同的错误:

System.ArgumentOutOfRangeException:索引超出范围。必须是 非负数且小于集合的大小。参数名称: 索引

在报表设计器中,我遇到错误:

缺少或无效的参数值。请输入所有项目的有效数据 参数

我纠正了报表设计器错误(通过添加默认参数值,请参见下面的屏幕截图),并且没有进行其他“代码”更改,这解决了这两个问题

有趣的是,如果我删除了默认值,报表设计器将返回错误,但在代码中运行报表仍然正常(可能报表缓存在某个有效状态?)


检查您是否可以在Telerik报表设计器中预览报表

我在运行代码时看到了相同的错误:

System.ArgumentOutOfRangeException:索引超出范围。必须是 非负数且小于集合的大小。参数名称: 索引

在报表设计器中,我遇到错误:

缺少或无效的参数值。请输入所有项目的有效数据 参数

我纠正了报表设计器错误(通过添加默认参数值,请参见下面的屏幕截图),并且没有进行其他“代码”更改,这解决了这两个问题

有趣的是,如果我删除了默认值,报表设计器将返回错误,但在代码中运行报表仍然正常(可能报表缓存在某个有效状态?)