asp.net 调用echarts显示图表控件随浏览器自适应解决方案

简介: 1、问题来源        我们在asp.net开发中常使用到frameset的框架结构,比如上左中右方式,在中间部分是一个可以控制左侧部分显示隐藏的功能,这时右边内容区域如果有使用echa...

1、问题来源

        我们在asp.net开发中常使用到frameset的框架结构,比如上左中右方式,在中间部分是一个可以控制左侧部分显示隐藏的功能,这时右边内容区域如果有使用echarts进行图表显示时,就会出现不能随浏览器自适应,我们该如何做呢?


2、解决方法

        需要在生成图表的js方法中增加一个定时器,当浏览器窗口发生大小改变时,触发chart图表控件同时改变大小,核心代码如下:

       setTimeout(function () {
                 window.onresize = function () {
                           myChart.resize();
               }
       }, 200);


全部代码类似如下:(这里myChart是定义图表的名称,我们要使用到)

 <script type="text/javascript">

        function ShowMonthChart() {
            var myChart = echarts.init(document.getElementById('monthChart'));
            try {
                myChart.setOption({
                    title: {
                        text: '当年总用电走势图',
                        x: 'center',
                        textStyle: { fontWeight: 'normal' }
                    },
                    tooltip: {
                        trigger: 'axis',
                        formatter: function (a, b, c) {
                            var result = "";
                            result += a[0].name + '月: </br>';
                            for (var i = 0; i < a.length; i++) {
                                result += a[i].seriesName + ": " + a[i].value + '<%=EngeryUnit%>' + '</br>';
                            }
                            return result;
                        },
                        textStyle: {
                            fontSize: 12
                        }
                    },
                    legend: {
                        data: ['去年总用电', '今年总用电'],
                        y: 'bottom'
                    },
                    dataZoom: {
                        show: false
                    },
                    grid: {
                        x: 100,
                        y: 30,
                        x2: 30,
                        y2: 60
                    },
                    toolbox: {
                        show: true,
                        feature: {
                            magicType: { show: true, type: ['line', 'bar'] },
                            restore: { show: false },
                            saveAsImage: { show: true }
                        }
                    },
                    xAxis: [
                        {
                            type: 'category',
                            boundaryGap: false,
                            data: [<%=xCategory%>],
                            axisLabel: {
                                formatter: '{value}月'
                            }
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value',
                            axisLabel: {
                                formatter: '{value}'
                            },
                            name: '单位:<%=EngeryUnit%>',
                            nameLocation: 'end',
                            nameTextStyle: {
                                color: '#000000000'
                            }
                        }
                    ],
                    series: [
                        {
                            name: '去年总用电',
                            type: 'line',
                            smooth: true,
                            data: [<%=lastDataSeries%>]
                        },
                            {
                                name: '今年总用电',
                                type: 'line',
                                smooth: true,
                                data: [<%=curDataSeries%>]
                            }
                    ]
                });
                    }
                    catch (e) {
                    }

                    //解决echarts图表不随浏览器缩放而自适应改变大小
                    setTimeout(function () {
                        window.onresize = function () {
                            myChart.resize();
                        }
                    }, 200);
                }
    </script>


3、实际效果图





===========================================================================

如果觉得对您有帮助,微信扫一扫支持一下:



相关文章
|
6月前
高亮提示、聚焦控件并滚动到浏览器中刚刚好可以查看到该控件的位置
高亮提示、聚焦控件并滚动到浏览器中刚刚好可以查看到该控件的位置
|
3月前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
45 8
|
1月前
|
Web App开发 安全 中间件
谷歌、火狐、Edge等浏览器如何使用ActiveX控件
allWebPlugin 是一款为用户提供安全、可靠且便捷的浏览器插件服务的中间件产品,支持 Chrome、Firefox、Edge 和 360 等浏览器。其 V2.0.0.20 版本支持一个页面加载多个插件,并解决了插件与浏览器之间的焦点问题。用户可通过“信息化系统 + allWebPlugin + 插件 + 浏览器”的解决方案实现 ActiveX 插件的无缝集成。下载地址见文末,安装包含详细说明。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
本文讨论了在基于.NET 6和.NET Framework的WinForms项目中添加图表控件的不同方法。由于.NET 6的WinForms项目默认不包含Chart控件,可以通过NuGet包管理器安装如ScottPlot等图表插件。而对于基于.NET Framework的WinForms项目,Chart控件是默认存在的,也可以通过NuGet安装额外的图表插件,例如LiveCharts。文中提供了通过NuGet添加图表控件的步骤和截图说明。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
|
2月前
|
开发框架 JavaScript 前端开发
|
5月前
|
JavaScript 前端开发
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),获取网页加载后的标题
在使用 WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件)时,要获取网页加载后的标题,可以监听 WebView2 的 NavigationCompleted 事件。这个事件被触发时,表示导航已完成,此时执行JavaScript代码可以安全地获取网页的标题。
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),获取网页加载后的标题
|
6月前
|
SQL 开发框架 JavaScript
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
84 0
|
6月前
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
83 0
|
6月前
|
JavaScript
引入echarts时报错 “TypeError: Cannot read properties of undefined (reading ‘init‘)“的解决方案
引入echarts时报错 “TypeError: Cannot read properties of undefined (reading ‘init‘)“的解决方案
514 0
引入echarts时报错 “TypeError: Cannot read properties of undefined (reading ‘init‘)“的解决方案
|
6月前
|
开发框架 .NET 数据安全/隐私保护
Asp.Net第二章服务器端控件
Asp.Net第二章服务器端控件
55 0