当前位置: 代码迷 >> ASP.NET >> XtraReport.ShowPerview()报"The method or operation is not supported"的异常
  详细解决方案

XtraReport.ShowPerview()报"The method or operation is not supported"的异常

热度:9322   发布时间:2013-02-25 00:00:00.0
XtraReport.ShowPerview()报"The method or operation is not supported"的错误
我的DXperience工具是11.1.8的,已经破解了,我是用Winform的Report Designer设计的repx文件,我用的开发工具是VS2010,然后在Asp.Net的页面后台加载这个文件,用XtraReport控件显示报表,但是每当程序运行到XtraReport的ShowPerview方法时都会报"The method or operation is not supported"的错误,刚开始遇到这个错误时,我以为是我少添加了引用,我就根据Devexpress的帮助文档http://documentation.devexpress.com/#XtraReports/CustomDocument9367添加了这些引用,但是任然报这个错;于是我就在其他本版的DXperience(10.1.5)环境下做测试,也是报这个错。下面是我用VS2010写的一个demo:

HTML code
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default1.aspx.cs" Inherits="Web.Default1" %><%@ Register Assembly="DevExpress.XtraReports.v11.1.Web, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"    Namespace="DevExpress.XtraReports.Web" TagPrefix="dx" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server">    <div>        <dx:ReportViewer ID="rvDemo" runat="server" onload="rvDemo_Load"></dx:ReportViewer>    </div>    </form></body></html>


C# code
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using DevExpress.XtraReports.UI;namespace Web{    public partial class Default1 : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {                    }        protected void rvDemo_Load(object sender, EventArgs e)        {            XtraReport xr = new XtraReport();            xr.LoadLayout(@"C:\Users\Default\Desktop\DXexpress Demo\DXexpress\Web\File\Report1.repx");            xr.ShowPreview();        }    }}


此问题本人纠结了很久,找过很多文档资料,始终没有解决,但求高人指点,谢谢。

------解决方案--------------------------------------------------------
我只在winform下用过这套工具,具体的记不清楚了。showpreview这个函数到底能在web下使用吗?还有这个函数在load的时候能用吗?建议你放在其他地方调用试试。之前在winform下我也有遇过某个方法要在窗口完全载入完之后才能有效的情况。
------解决方案--------------------------------------------------------
探讨
回1楼的话,我页面的加载事件里面也试过这样做,效果是一样的,所以我才有了上面的这个Demo
对于Devexpress我还是个新手,很多东西需要多学习,我的这条思路是应需求而产生的,是否可以在Web里面实现我也不知道,而在winform里面这样做事完全可行的,除非在web里面不是用这个方法显示报表

------解决方案--------------------------------------------------------
据我之前用这套控件的经验,你这个函数基本不可能winform和webform通用。这个预览是要弹出一个由DevExpress控制的窗口的,当然我用的时候是Winform。而你的环境是webform,怎么可能在网页上弹出一个winform来。建议你不要局限于XtraReport,我记得DevExpress有另外一套asp.net的控件的,可能在那里有其他的用法(后来还有WPF、SL等的,我有注册他们官网,一直有推送的)。
  相关解决方案