对象引用未设置为报表vewier中对象的实例 [英] Object reference not set to an instance of an object in report vewier

查看:107
本文介绍了对象引用未设置为报表vewier中对象的实例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好b $ b

我需要在asp.net的报告查看器中禁用excel导出。但错误仍然存​​在。我做了调试,错误是对象引用没有设置为对象的实例这个留置权

Dim ListRenderingExtensions As System.Reflection.MethodInfo = m_previewService .FieldType.GetMethod(ListRenderingExtensions,Flags)





请帮帮我



问候



Maideen



Hi
I need to disable excel export in Report viewer in asp.net. But error persist. I did debug, Error is "Object reference not set to an instance of an object" in this lien
" Dim ListRenderingExtensions As System.Reflection.MethodInfo = m_previewService.FieldType.GetMethod("ListRenderingExtensions", Flags)"


Please help me

Regards

Maideen

Protected Sub DisableFormat(ByRef viewer As ReportViewer, ByVal formatName As String)

        Const Flags As System.Reflection.BindingFlags = System.Reflection.BindingFlags.NonPublic + System.Reflection.BindingFlags.Public + System.Reflection.BindingFlags.Instance
        Dim m_previewService As System.Reflection.FieldInfo = viewer.LocalReport.GetType().GetField("m_previewService", Flags)
        Dim ListRenderingExtensions As System.Reflection.MethodInfo = m_previewService.FieldType.GetMethod("ListRenderingExtensions", Flags)
        Dim previewServiceInstance As Object = m_previewService.GetValue(viewer.LocalReport)
        Dim extensions As IList = ListRenderingExtensions.Invoke(previewServiceInstance, Nothing)
        Dim name As System.Reflection.PropertyInfo = extensions(0).GetType().GetProperty("Name", Flags)

        Dim extension As Object

        For Each extension In Extensions
            If (String.Compare(name.GetValue(extension, Nothing).ToString(), formatName, True) = 0) Then
                Dim m_isVisible As System.Reflection.FieldInfo = extension.GetType().GetField("m_isVisible", System.Reflection.BindingFlags.NonPublic + System.Reflection.BindingFlags.Instance)
                m_isVisible.SetValue(extension, True)
                Dim m_isExposedExternally As System.Reflection.FieldInfo = extension.GetType().GetField("m_isExposedExternally", System.Reflection.BindingFlags.NonPublic + System.Reflection.BindingFlags.Instance)
                m_isExposedExternally.SetValue(extension, True)
                Exit For
            End If
        Next extension


    End Sub

    Protected Sub ReportViewer1_PreRender(sender As Object, e As EventArgs) Handles ReportViewer1.PreRender
        Call DisableFormat(Me.ReportViewer1, "Excel") ' Disable EXCEL format
    End Sub

推荐答案

首先检查 m_previewSe rvice.FieldType 不为null并继续使用GetMethod调用
first check m_previewService.FieldType is not null and proceed with GetMethod call


这篇关于对象引用未设置为报表vewier中对象的实例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆