[.js][software]
[extJs] 헤더(컬럼) 동적으로 추가하기
혜화초보
2017. 9. 14. 09:50
뷰포트를 이용해야 하는듯.
그리드를 처음에 만들어서 뷰포트에 넣어서 나오게 만들고
버튼을 클릭하면 뷰포트에서 지운다음 그리드를 다시 만들어서
뷰포트에 넣는 구조.
<html> <head> </head> <link rel="stylesheet" type="text/css" charset="UTF-8" href="./theme-gray-all.css" /> <style type="text/css"> </style> <script type="text/javascript" charset="UTF-8" src="./ext-all.js"></script> <body> <script language='javascript' > var val_click; Ext.onReady(function(){ columns = [ { text: 'Name', width: 100, sortable: false, hideable: false, dataIndex: 'name' }, { text: 'Email Address', width: 150, dataIndex: 'email', hidden: false }, { text: 'Phone Number', flex: 1, dataIndex: 'phone' , editable: true } ]; Ext.define('User', { extend: 'Ext.data.Model', fields: columns }); var userStore = Ext.create('Ext.data.Store', { model: 'User', data: [ { name: 'Lisa', email: 'lisa@simpsons.com', phone: '100' , age: '50' }, { name: 'Bart', email: 'bart@simpsons.com', phone: '110' , age: '20'}, { name: 'Homer', email: 'homer@simpsons.com', phone: '31', age: '10' }, { name: 'Marge', email: 'marge@simpsons.com', phone: '95', age: '30' } ] }); gridConfig = { store: userStore, width: 400, height: 200, title: 'Application Users', editable : true, columns : Ext.Array.clone( columns ) }; grid01 = Ext.create('Ext.grid.Panel', gridConfig ); button1 = Ext.create('Ext.Button', { text: 'Click me', handler: function() { viewport.remove(grid01, true); columns.push( { text: 'age', flex: 1, dataIndex: 'age' , editable: true } ); gridConfig.columns = columns; grid01 = Ext.create('Ext.grid.Panel', gridConfig ); viewport.add(grid01); } }); var viewport = Ext.create('Ext.container.Viewport', { layout: 'border', items: [ grid01 , button1 ] }); }); </script> </body> </html> |