ExtJs는 웹애플리케이션을 만들기위한 client-side-JavaScript framework이다. JackSolocum이 Yahoo! User Interface (YUI) library의 확장으로 만들기 시작했으며 Yui-ext란 Project명으로 빠르게 성장했다.
라이센스
ExtJS는 개발목적의 오픈소스로 제공되는 LGPL 라이센스와 로얄티프리 커머셜 라이센스로 구분된다.( licensing page ) 상업용 라이센스는 SVN 접속이 허락되며 전화/팩스 및 이메일로 지원을 받을수 있는것이 고작(?)이다.
호환되는 서버 플랫폼
PHP,Ruby on Rails (Embeded로 지원), .NET, Java 등 여러가지 서버 플랫폼을 지원한다. 사이트( server-side frameworks ) 를 참조하기 바란다.
ExtJS를 사용하기 위해 요구되는 라이브러리
1.0.1a 버전에서는 YUI, jQuery or Prototype/Script.aculo.us. 가 반드시 필요했으나 1.1에서는 Ext adapter를 채택하여 더이상 다른 외부 라이브러리 없이 구동할수 있다. 또한 외부 라이브러리를 사용하고 싶다면 해당 라이브러리 어답터가 별도로 구비되어 있으며 Extension Mode로 제공되는 기타 다른 라이브러리를 참조할수가 있다.
var proxy = new Ext.data.HttpProxy({ url: '/DoSearch.php' }); // Add the HTTP parameter searchTerm to the request proxy.on('beforeload', function(p, params){ params.searchTerm = searchValue; });
function(grid, rowIndex, columnIndex, e){ var record = grid.getStore().getAt(rowIndex); // 레코드의 Row를 가져온다. var fieldName = grid.getColumnModel().getDataIndex(columnIndex); // 컬럼의 필드명을 가져온다. var data = record.get(fieldName); }
Ajax로 불러온 마크업중의 스크립트가 실행되지 않을때
Ext.Updater.defaults.loadScripts나 Updater.update 메쏘드나 Element.update 메쏘드 사용
그리드의 Row를 각각 틀리게 표현하고 싶을때 (getRowClass를 사용한 expander사용)
HttpProxy나 ScriptTagProxy와 같이 remote data 를 사용할때 Store.load() 는 비동기로 호출되며 서버블로킹없이 즉시 요청한다. "load" 와 "loadexception"이벤트로 쉽게 작업을 할수 있다. 이후 Grid Data Load에서 설명 ^^
Ext.get으로 컴포넌트 불러올때
Ext.get 는 단지 HTML Element의 객체를 가져온다. 즉, document.getElementById와 같다. 판넬이나 폼판넬등 컴포넌트를 불러올때는 Ext.getCmp를 사용해야 한다.
tree Node에서 아이콘 표시하는법
myNode.appendChild(new AsyncTreeNode({ text: "A folder", iconCls: "folder" });