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

发布于 2024-12-27 06:44:56 字数 5353 浏览 1 评论 0原文

我在“/”应用程序中收到服务器错误。

异常详细信息:

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

源错误:

执行过程中产生了未处理的异常 当前的网络请求。有关原产地和地点的信息 可以使用下面的异常堆栈跟踪来识别异常。

堆栈跟踪:

[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 查看器中收到此错误。 仅针对特定条件而非所有值出现此错误。

我哪里缺少一些东西?

请帮我。

I am getting Server Error in '/' Application.

Exception Details:

System.ArgumentOutOfRangeException: Index was out of range. Must be
non-negative and less than the size of the collection. Parameter name:
index

Source Error:

An unhandled exception was generated during the execution of the
current web request. Information regarding the origin and location of
the exception can be identified using the exception stack trace below.

Stack Trace:

[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

I am getting this error in Telerik Report viewer.
Getting this error only for specific criteria not for all the values.

where i am missing something?

Please help me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

遥远的绿洲 2025-01-03 06:44:56

我有同样的问题。我还没弄清楚它的起源,但我想它来自数据源绑定。当您在报表上创建新实例时,它会在 InitializeComponent() 方法中创建默认控件(例如,包含 0 行的列表或不包含文本的文本框)。当您绑定数据源(例如,具有 3 个项目的列表)时,它引用列表(Telerik Reporting 控件)并尝试将具有 3 个项目的集合绑定到具有 0 行的控件。所以在这种情况下你会遇到 OutOfRangeException。我猜是这样的。

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

I have same problem. I didn't figured out its origin yet, but I suppose it comes from data source binding. When you create new instance on report it creates default controls in InitializeComponent() method (for example, List with 0 rows or TextBox without text). And when you bind data source (for example, List with 3 items) it refer to List (Telerik Reporting control) and try to bind collection with 3 items to control with 0 rows. So in this case you had OutOfRangeException. Something like that, I guess.

UPD: actually, I had resolved my problem yesterday. It was all because I try to bind empty collection as control's data source. I just added default object (with empty properties) to my collection if it contains no elements before binding.

寄意 2025-01-03 06:44:56

我们间歇性地遇到了非常相似的问题。清除 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;

We have been experiencing a very similar issue intermittently. Clearing out the Telerik state database tables seems to resolve it sometimes for us. You can flip @Condition to 1 in the script below to execute the delete.

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;
去了角落 2025-01-03 06:44:56

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

运行代码时我看到同样的错误:

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

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

参数值缺失或无效。请输入所有有效数据
参数

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

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

在此处输入图像描述

Check that you can preview the report in the Telerik Report Designer.

I was seeing the same error when running code:

System.ArgumentOutOfRangeException: Index was out of range. Must be
non-negative and less than the size of the collection. Parameter name:
index

In the report designer I had the error:

Missing or invalid parameter value. Please input valid data for all
parameters

I corrected the Report Designer error (by adding a default parameter value, see screenshot below) and made no other 'code' changes, this resolved both issues.

Interestingly if I remove the default value the Report Designer error returns but running the report in code remains OK (possibly the report is cached somewhere in a valid state?)

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文