我应该使用Javascript、CSS还是隐藏控件渲染的图像?

我应该使用Javascript、CSS还是隐藏控件渲染的图像?,javascript,jquery,css,reportviewer,server-side,Javascript,Jquery,Css,Reportviewer,Server Side,我想隐藏ReportView控件的背景图像,它是toolbar\u bk.png 通过说hide,实际上我想将其设置为none 那我怎么能轻易做到呢?服务器端、CSS、Javascript或更好的JQUERY? 我对这件事完全不知所措 这是渲染的部分 <div id="ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder1_ReportViewer1_ctl05" style="font-family:Verdana;font-size

我想隐藏ReportView控件的背景图像,它是
toolbar\u bk.png
通过说hide,实际上我想将其设置为none

那我怎么能轻易做到呢?服务器端、CSS、Javascript或更好的JQUERY? 我对这件事完全不知所措

这是渲染的部分

<div id="ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder1_ReportViewer1_ctl05" 
  style="font-family:Verdana;font-size:8pt;border-bottom:1px #CCCCCC Solid;
  background-color:#F7F7F7;
  background-image:url(/domain-name.com/Reserved.ReportViewerWebControl.axd?
  OpType=BackImage&Version=10.0.40219.329&
  Color=%23F7F7F7&Name=Microsoft.Reporting.WebForms.Icons.toolbar_bk.png);">

请注意,隐藏元素或显示背景等的始终是CSS。您只需将其内联放入外部文件,或通过脚本语言(即JavaScript)动态创建,最终使用JavaScript库作为jQuery


对于您的问题:只要不创建内联样式的服务器端,一切都很好

使用jQuery,您只需执行以下操作:

$('#ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder1_ReportViewer1_ctl05').css('background-image', 'none');
仅使用普通javascript:

document.getElementById('ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder1_ReportViewer1_ctl05').style.backgroundImage = 'none';
在页面或外部样式表中使用css时:

#ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder1_ReportViewer1_ctl05 { background-image:none !important}

我不确定这是你想要的。尽管如此,这里还是有一个答案

用它们自己的div包装它们。让我们给这个div一个“包装器”类。在css端粘贴以下内容:

.包装纸*{ 背景图像:无; }

  • 最佳选项--将服务器控件配置为不设置背景图像
  • 如果不可能使用#1,则可以编写JavaScript在加载HTML后对其进行操作 如果需要使用选项2,下面是一个jQuery示例:

    $('[id~="ReportViewer1"]').css('background-image', 'none');
    
    使用jquery
    addClass()
    函数如下

    <style>
                .report
                {
                    background-color: #D6E3F3;
                    /* background-image: url("/Reserved.ReportViewerWebControl.axd?OpType=BackImage&Version=10.0.30319.1&Color=%23ECE9D8&Name=Microsoft.Reporting.WebForms.Icons.toolbar_bk.png");*/
                    border-bottom: 1px solid #CCCCCC;
                    font-family: Verdana;
                    font-size: 8pt;
                }
                </style>
    
    
    <script>
        $(document).ready(function () {
            $('#ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder1_ReportViewer1_ctl05').removeAttr('style');
            $('#ctl00_ctl00_ContentPlaceHolder1_ContentPlaceHolder1_ReportViewer1_ctl05').addClass('report');
        });
    </script>
    
    
    .报告
    {
    背景色:#D6E3F3;
    /*背景图像:url(“/Reserved.ReportViewerWebControl.axd?OpType=BackImage&Version=10.0.30319.1&Color=%23ECE9D8&Name=Microsoft.Reporting.WebForms.Icons.toolbar_bk.png”)*/
    边框底部:1px实心#CCCC;
    字体系列:Verdana;
    字号:8pt;
    }
    $(文档).ready(函数(){
    $(“#ctl00_ctl00_contentplaceholder 1_contentplaceholder 1_ReportViewer1_ctl05”).removeAttr('style');
    $(“#ctl00_ctl00_contentplaceholder 1_contentplaceholder 1_ReportViewer1_ctl05”).addClass('report');
    });
    
    所有这些都是可能的,但这就是CSS的用途。我在上文中假设您事先不知道这些ID=“ctl00\U ctl00\U ContentPlaceholder 1\U ContentPlaceholder 1\U ReportViewer1\U ctl05”到达您的页面时将是什么。我还假设你可以控制插入它们的页面。当时不了解实际的问题,只是位置!重要的是,这将是,我很抱歉把所有这些都放在他们自己的评论。。。。所以,这就是.wrapper*{background image:none!important;}在某些浏览器中可以工作。IE6当然不允许你,但也许OP并不关心浏览器。如果您不需要支持较旧的浏览器,这绝对是最好的答案。