【问题标题】:Postback issue for reportviewer control in MVC3MVC3中reportviewer控件的回发问题
【发布时间】:2012-05-15 18:14:30
【问题描述】:

我需要在我的 ASP.net MVC3 应用程序中使用报表查看器控件。 VS2010 报表查看器 V10.0

我尝试使用以下解决方案。我创建了用户控件并将reportviewer控件放在那里。

How can I use a reportviewer control in an asp.net mvc 3 razor view?

代码如上链接所示。

问题是, - 如果我点击下一页或最后一页,它只会留在那里。 - 如果我允许用​​户输入参数,然后单击报表查看器上的查看报表按钮,它什么也不做。

我知道原因,它失去了它的状态。它的回发问题。如果它的常规aspx页面我可以通过“!IsPostBack”在page_load中控制它,但如何在用户控制中做到这一点。我尝试将 IsPostback 放在控制 page_load 上,但它总是错误的。

我的代码与上面链接中列出的相同。我正在使用用户控件。

有什么办法吗?

【问题讨论】:

    标签: asp.net-mvc-3 reportviewer


    【解决方案1】:

    这会成功并在回发时使 IsPostBack=true:

    <script runat="server">
        private void Page_Init(object sender, System.EventArgs e)
        {
            Context.Handler = this.Page;
        }
    </script>
    

    【讨论】:

    • 请注意它是针对 MVC 的。 Postback、Page_init 和类似的 web 表单概念在这里不适用。
    • 问题是关于在 MVC 应用程序中使用 .ascx 控件。可以通过@Html.Partial("UserControlName") 在 MVC 视图中呈现 .ascx 控件。但不幸的是,除非应用上述技巧,否则用户控件中的 IsPostBack 始终为 false。 Page_Init 在 MVC 中无效,但在 .ascx 用户控件中有效。
    • @shapkin 谢谢,它帮助我完成了一个包含报表查看器的页面,这是一个无限循环的回发。
    猜你喜欢
    • 2010-10-21
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多