惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
U
Unit 42
F
Fortinet All Blogs
雷峰网
雷峰网
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
Y
Y Combinator Blog
罗磊的独立博客
V
Visual Studio Blog
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
爱范儿
爱范儿
B
Blog RSS Feed
aimingoo的专栏
aimingoo的专栏
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
I
InfoQ
博客园 - 叶小钗
博客园 - 聂微东
Last Week in AI
Last Week in AI

博客园 - 吴东雷

配置NuGet自动下载丢失的Dll SharePoint2010站点在IE下的操作异常 ExtJS的store.sync向Asp.net MVC的Action提交时引发System.Reflection.AmbiguousMatchException异常 【转载】javascript getComputedStyle,getPropertyValue,CurrentStyle说明 【原创】关于SPSecurity.RunWithElevatedPrivileges的一个问题[A problem about SPSecurity.RunWithElevatedPrivileges] 【原创】如何让SharePoint2010的内联代码支持.Net framework 3.5[How to embed inline code in aspx with .net framework 3.5 syntax] 【半原创】SharePoint CAML 查询生成器[SharePoint 2010 CAML Query Builder] 【原创】在DataFormWebPart中将列表附件显示为图片(二)[How to display list item attachments as image in DFWP Part 2] 【原创】如何在DataFormWebPart中嵌入自定义控件[How to embeded custom control in DFWP] 【原创】SharePoint2010的SaveButton如何实现在跳转前给用户以提示[How to implement SaveButton display an alert when Redirect action] 【原创】在DataFormWebPart中将列表附件显示为图片(一)[How to display list item attachments as image in DFWP Part1] Asp.net中全局缓存的几种方式 修改Model中hasMany中自动生成的属性值 ExtJS中自定义组件并将事件暴露给调用者 从控制台测试SharePoint遇到的两个问题 The Sencha Class System(理解ExtJs定义类的过程) IIS7中Sites(站点), Applications(应用程序), Virtual Directories(虚拟目录)的粗浅理解 按钮的ajax请求时,一次点击两次提交的问题 MVC3中Razor模板引擎如何修改View的基类
ReportViewerWebWebpart显示报表时显示的脚本错误:Uncaught ...
吴东雷 · 2012-10-28 · via 博客园 - 吴东雷

原因可能有三个:

1、ReportService版本太低,所以可以升级Sql Server 2008 R2 SP2.

2、母版页中的ScriptManager的属性加上ScriptMode="Release"

3、在站点的web.config中将设置为<compilation batch="false" debug="false" optimizeCompilations="true">,其主要原因是debug为true的时候会出现这个错误。

其中第1、2个可能都不是主要原因,但我在测试的时候由于已经安装了SP2,所以也不可能把它卸载后再去测试,估且这样认为吧。

另外附上控制ReportViewerWebPart过滤参数以及控制缩放的方法:

在页面的后台代码中加入(或者直接写到aspx文件中):

        protected override void OnLoad(EventArgs e)
        {
            if (!this.IsPostBack)
            {
                ReportViewerWebPart viewer = FindMainWebpart<ReportViewerWebPart>();
                if (viewer != null)
                {
                    viewer.OverrideParameters.Clear();
                    viewer.OverrideParameters.Add(new Microsoft.Reporting.WebForms.ReportParameter("aa", "13,14", false));
                ReportViewer rptViewer = ReflectorUtils.getField<ReportViewer>("m_reportViewer", viewer);
                rptViewer.ZoomMode = ZoomMode.PageWidth;
                }
            }

            base.OnLoad(e);
        }

        /// <summary>
        /// 找到页面的Webpart
        /// </summary>
        /// <param name="webPartZoneId">WebpartZone的Id</param>
        /// <returns></returns>
        protected T FindWebpart<T>(string webPartZoneId) where T : Microsoft.SharePoint.WebPartPages.WebPart
        {

            #region 已注释:通过Master找特定WebPartZone的控件

            //1.此种方式只能获取指定区域的Webpart
            //ContentPlaceHolder holder =(ContentPlaceHolder)Master.FindControl("PlaceHolderMain");
            //if (holder != null)
            //{
            //    WebPartZone zone = (WebPartZone)holder.FindControl("Main");
            //    foreach (WebPart control in zone.WebParts)
            //    {
            //        if (control is XsltListViewWebPart)
            //        {

            //        }
            //    }
            //}

            #endregion

            T result = default(T);

            SPWebPartManager sPWebPartManager = SPWebPartManagerInPage;
            if ((sPWebPartManager.Zones != null) && (sPWebPartManager.Zones.Count > 0))
            {
                foreach (Microsoft.SharePoint.WebPartPages.WebPartZone zone in sPWebPartManager.Zones)
                {
                    if (zone.ID == webPartZoneId)
                    {
                        foreach (Microsoft.SharePoint.WebPartPages.WebPart webpart in zone.WebParts)
                        {
                            if (webpart is T)
                            {
                                result = (T)webpart;
                                break;
                            }
                        }
                    }
                    if (result != null)
                    {
                        break;
                    }
                }
            }
            return result;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        protected T FindMainWebpart<T>() where T : Microsoft.SharePoint.WebPartPages.WebPart
        {
            return FindWebpart<T>("Main");
        }

一点说明:为什么在标题中要嵌入英文?原因是为了能够让国外的网友能查询到这篇文章。平常在Google上查资料的时候,经常参考国外网友的博客,帮助我解决了很多问题,所以我也想让他们能够参考我写的内容。当然文中我不可能全部译为英文,所以我尽量把代码粘全,靠代码说话吧。