Ext Grid 너비 적응성

2405 단어 grid
우리가 Ext의 Grid를 사용할 때, 브라우저의 폭을 바꿀 때, Grid의 폭이 스스로 적응할 수 있도록 Grid도 그에 상응하는 폭을 바꾸어야 한다.
 
그러면 우리는 윈도우를 등록할 수 있다.onresize 함수는 상응하는 것을 진행한다.그러나 사용자가 브라우저의 폭을 매우 작게 당기면 잘 보이지 않을 수 있기 때문에 우리는 열의 내용이 대충 잘 보일 수 있도록 최소 폭을 설정할 수 있다.브라우저가 이 너비보다 작으면 Grid가 가장 작고 수평 스크롤 바가 나타납니다.
 
페이지 레이아웃은 다음과 같습니다.
 
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
	String path = request.getContextPath();
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
    var __path = '<%=path%>';
	Ext.BLANK_IMAGE_URL = __path + '/styles/images/s.gif';
</script>

<script type="text/javascript" src="<%=path%>/test.js"></script>
<title></title>
</head>
<body>
	<div id="grid-div">
		<div id="grid"></div>
	</div>
</body>
</html>

 
 
코드는 다음과 같습니다.
 
 
Ext.onReady(function() {
	// 
	//...
	
	// 
	window.onresize=resizeWindowListener;
});


function resizeWindowListener() {

	var grid = Ext.getCmp("grid");

	//  
	var columns = grid.getColumnModel().getColumnCount(true);

	grid.setWidth(0);

	//  , 
	if (Ext.get("grid-div").getWidth() > columns * 80) {
		// grid grid 
		grid.setWidth(Ext.get("grid-div").getWidth());
	}
        else
        {
            //  *80
            grid.setWidth(columns * 80);
        }        
}

// :
// , 
	Ext.EventManager.onWindowResize(function(width,height)
	{
		var sidWidth = grid.getColumnModel().getColumnCount(true)*100;
		grid.setWidth(sidWidth);
		if(Ext.get("grid-div").getWidth()>sidWidth)
		{
			grid.setWidth(Ext.get("grid-div").getWidth());
		}
    });

좋은 웹페이지 즐겨찾기