Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Reportviewer内部用户控件问题_C#_Asp.net_Reporting Services - Fatal编程技术网

C# Reportviewer内部用户控件问题

C# Reportviewer内部用户控件问题,c#,asp.net,reporting-services,C#,Asp.net,Reporting Services,我有一个包含ReportViewer的用户控件(ascx)。 我需要获取报告中的总页数(例如,RViewer.LocalReport.GetTotalPages())。 我了解到,此值仅在Reportviewer的PreRender事件之后可用。 在此事件之后,在aspx页面(包含此ascx)中渲染事件,我得到的值为0 我尝试将Reportviewer直接添加到另一个aspx页面。然后在该aspx页面的Render事件中,我得到了总页面的正确值 为什么我不能使用之前的方法?如何将用户控件添加到页

我有一个包含ReportViewer的用户控件(ascx)。 我需要获取报告中的总页数(例如,
RViewer.LocalReport.GetTotalPages()
)。 我了解到,此值仅在Reportviewer的
PreRender
事件之后可用。 在此事件之后,在aspx页面(包含此ascx)中<代码>渲染事件,我得到的值为0

我尝试将Reportviewer直接添加到另一个aspx页面。然后在该aspx页面的
Render
事件中,我得到了总页面的正确值


为什么我不能使用之前的方法?

如何将用户控件添加到页面?在加价中?还是动态的

假设报表查看器控件位于用户控件中,如何通过用户控件向上传输值到页面

我相信(我可能错了)你的用户控件预渲染会在页面预渲染后触发。因此,如果在页面的预呈现中通过用户控件到达reportviewer,则用户控件预呈现以及reportviewer预呈现将不会发生


如果这是正确的,解决问题的一种方法是在用户控件的预呈现中引发一个事件,这将在事件参数中传递页面计数。(您可以创建自定义事件参数类,也可以从ReportViewer的命名空间重新使用该类。)您的页面将具有此值的处理程序,并使用处理程序中的值而不是预呈现事件处理程序中的值执行所需的操作

如何将用户控件添加到页面?在加价中?还是动态的

假设报表查看器控件位于用户控件中,如何通过用户控件向上传输值到页面

我相信(我可能错了)你的用户控件预渲染会在页面预渲染后触发。因此,如果在页面的预呈现中通过用户控件到达reportviewer,则用户控件预呈现以及reportviewer预呈现将不会发生

如果这是正确的,解决问题的一种方法是在用户控件的预呈现中引发一个事件,这将在事件参数中传递页面计数。(您可以创建自定义事件参数类,也可以从ReportViewer的命名空间重新使用该类。)您的页面将具有此值的处理程序,并使用处理程序中的值而不是预呈现事件处理程序中的值执行所需的操作