1. 程式人生 > >easyui Layout 自動適應視窗大小

easyui Layout 自動適應視窗大小

(2012-04-17注:easyui新版本layout已經有fit屬性,不用這麼麻煩)

一個小小的應用

一、使用asp.net 自帶的form;

二、用div代替asp.net 自帶的form;

開發工具:VS2008

框架:jquery-easyui-1.2.6.js,jquery-1.7.2.min.js

瀏覽器:IE6,chrome20.0.1132

一、使用asp.net 自帶的form;

由於aspx頁面的特殊性,class='easyui-layout'如果直接放在body上,用div作region,會因為中間間隔著名的<form id="form1" runat="server" >伺服器控制元件,而出現缺失節點的錯誤;

目前可行的方法是把class='easyui-layout'放到<form id="form1" runat="server" >伺服器控制元件內,同時,讓form自動適應body的高寬;

具體操作為,取window的高寬,設定給form

其中,為了給body四周留出一定的margin,取出的window高寬各減去10,同時把body的margin:5px;

視窗自適應js檔案:WindowAutoFit.js

[javascript] view plaincopy
  1. /// <reference path="jquery-easyui/jquery-1.7.2.min.js" />
  2. /// <reference path="jquery-easyui/jquery.easyui.min.js" />
  3. //視窗自適應調整    
  4. $(function() {  
  5.     windowResize();  //文件載入時載入
  6.     $(window).resize(function() {  
  7.         windowResize();  //視窗改變大小時載入
  8.     });  
  9. });  
  10. function windowResize() {  
  11.     var width = $(window).width()-10;   //減去10與body中margin:5px共同作用:為body留的邊距
  12.     var height = $(window).height()-10;  
  13.     $('form#form1').width(width);  
  14.     $('form#form1').height(height);  
  15.     $('form#form1').layout();  //相當於<form id='form1' class='easyui-layout' runat="server">
  16. }  

相關aspx檔案:index.aspx
  1. <html>
  2.     <headrunat="server">
  3.         <title>Test</title>
  4.         <scripttype="text/javascript"src="../Public/js/FusionCharts.js"></script>
  5.         <linkhref="../Public/js/jquery-easyui/themes/default/easyui.css"rel="stylesheet"type="text/css"/>
  6.         <linkhref="../Public/js/jquery-easyui/themes/icon.css"rel="stylesheet"type="text/css"/>
  7.         <scriptsrc="../Public/js/jquery-easyui/jquery-1.7.2.min.js"type="text/javascript"></script>
  8.         <scriptsrc="../Public/js/jquery-easyui/jquery.easyui.min.js"type="text/javascript"></script>
  9.         <scriptsrc="../Public/js/WindowAutoFit.js"type="text/javascript"></script>
  10.         <scriptsrc="../Public/js/ImtTrade.js"type="text/javascript"></script>
  11.     </head>
  12.     <bodystyle="margin:5px; padding: 0px;">
  13.         <!-- class="easyui-layout"由js檔案放到form中  -->
  14.         <formid="form1"runat="server"style="margin:0; padding: 0px;">
  15.               <!--  其它程式碼  -->
  16.         </form>
  17.     </body>
  18. </html>

二、用div代替asp.net 自帶的form;

js程式碼:

[javascript] view plaincopy
  1. //視窗自適應調整    
  2. $(function() {  
  3.     windowResize();  //文件載入時載入
  4.     $(window).resize(function() {  
  5.         windowResize();  //視窗改變大小時載入
  6.     });  
  7. });  
  8. function windowResize() {  
  9.     var width = $(window).width()-10;   //減去10與body中margin:5px共同作用:為body留的邊距
  10.     var height = $(window).height()-10;  
  11. //  $('form#form1').width(width);
  12. //  $('form#form1').height(height);
  13. //  $('form#form1').layout();  //相當於<form id='form1' class='easyui-layout' runat="server">
  14.     $('#autoFitWindow').width(width);  
  15.     $('#autoFitWindow').height(height);  
  16.     $('#autoFitWindow').layout();  //相當於<form id='form1' class='easyui-layout' runat="server">
  17. }  

aspx程式碼: [javascript] view plaincopy
  1. <html>  
  2.     <head>  
  3.         <title>test</title>  
  4.         <link href="../Public/js/jquery-easyui/themes/default/easyui.css" rel="stylesheet" type="text/css" />  
  5.         <link href="../Public/js/jquery-easyui/themes/icon.css" rel="stylesheet" type="text/css" />  
  6.         <script src="../Public/js/jquery-easyui/jquery-1.7.2.min.js" type="text/javascript"> </script>  
  7.         <script src="../Public/js/jquery-easyui/jquery.easyui.min.js" type="text/javascript"> </script>  
  8.         <script src="../Public/js/WindowAutoFit.js" type="text/javascript"></script>  
  9.     </head>  
  10.     <body style="margin:5px; padding: 0px;">  
  11.         <div id="autoFitWindow" style="margin:0; padding: 0px;">  
  12.             <%--其它程式碼--%>  
  13.         </div>  
  14.     </body>  
  15. </html>