Telerik报告中的索引超出范围错误
“/”应用程序中出现服务器错误 例外情况详情: System.ArgumentOutOfRangeException:索引超出范围。必须是 非负数且小于集合的大小。参数名称: 索引 源错误: 在执行过程中生成了未处理的异常 当前web请求。关于货物来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常 堆栈跟踪: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
[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:索引超出范围。必须是 非负数且小于集合的大小。参数名称: 索引 在报表设计器中,我遇到错误: 缺少或无效的参数值。请输入所有项目的有效数据 参数 我纠正了报表设计器错误(通过添加默认参数值,请参见下面的屏幕截图),并且没有进行其他“代码”更改,这解决了这两个问题 有趣的是,如果我删除了默认值,报表设计器将返回错误,但在代码中运行报表仍然正常(可能报表缓存在某个有效状态?)