FineUI 官方论坛

标题: 【已解决】如何通过JS获取ContentPanel 容器的高和宽? [打印本页]

作者: 幽灵    时间: 2013-5-4 21:23
标题: 【已解决】如何通过JS获取ContentPanel 容器的高和宽?
我想在mschart图片,根据显示器容量动态生成大小,我改怎么获取外面的ContentPanel 容器的高和宽 呢??   

<x:ContentPanel ID="ContentPanel1" ShowBorder="false" runat="server" ShowHeader="false"
                        RowHeight="50%" AutoWidth="true" CssStyle="height:95%;text-align:center;">
                            <asp:Chart ID="chart" runat="server" >
                            </asp:Chart>
                    </x:ContentPanel>

作者: sanshi    时间: 2013-5-4 21:42
设置Chart 的宽度为 100% 不行么? 即使你在服务器端能拿到外部容器的大小,外部容器的宽度在客户端却是可以变化的
作者: 幽灵    时间: 2013-5-4 22:11
mschart只能设置像素点啊,不能设百分比
我就是想在外部容器在客户端渲染完成后得到外部容器的宽和高啊
作者: 幽灵    时间: 2013-5-4 22:33
有没有好的办法啊啊!!
作者: sanshi    时间: 2013-5-4 22:37
幽灵 发表于 2013-5-4 22:33
有没有好的办法啊啊!!

MSChart好像是在服务器端生成图片的吧,你可以在客户端计算ContentPanel的宽度和高度,然后在动态设置MSChart生成图片的URL,应该也可以


搞不定的话,你用空项目创建一个可以运行的例子,我来帮你调整(如果我长时间没有回复,请直接回帖提醒我,事情多....)

作者: 幽灵    时间: 2013-5-4 22:45
我就是想问如何在客户端计算ContentPanel的宽度和高度
作者: sanshi    时间: 2013-5-5 17:03
幽灵 发表于 2013-5-4 22:45
我就是想问如何在客户端计算ContentPanel的宽度和高度

这个很简单了,在客户端找到ContentPanel组件,然后调用getInnerWidth或者getInnerHeight即可:
  1. var panel = X('<%= Panel1.ClientID %>'); alert(panel.getInnerHeight());
复制代码


当然getInnerHeight指的是面板内容区域的高度,如果要获取这个面板的高度,应该是getFrameHeight函数
作者: delphi9    时间: 2013-6-4 20:47
谢谢楼上提醒
我的问题是:如果这个contentpanel是在mainregion里面,客户端点击折叠了左边的region,怎么重新计算contentpanel的宽度,并对里面的chart刷新调整?
作者: 大千    时间: 2013-6-5 10:52
不清楚。。
作者: 大千    时间: 2013-6-5 11:04
我也想知道
作者: liaofeifan    时间: 2013-9-7 10:57
我试验了一种方法,页面上放一隐藏input,用7楼方法获得contentpanel高度宽度,并更新至input的value中,服务器代码中获取改值,然后设置chart的宽度高度。基本可用,不知还有其他思路没?
作者: 夏雨雪(joe)    时间: 2013-9-8 08:59
delphi9 发表于 2013-6-4 20:47
谢谢楼上提醒
我的问题是:如果这个contentpanel是在mainregion里面,客户端点击折叠了左边的region,怎么 ...

可以参考我的一个贴子,region收缩或展开,进行事件监听,js获取想要对象的宽高




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4