рдЬреЗрдПрд╕ 4 рдЧреНрд░рд┐рдб "рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░"

рд╢реБрдн рджреЛрдкрд╣рд░, рдкреНрд░рд┐рдп Habrausersред

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВ рдПрдХреНрд╕рдЯ рдЬреЗрдПрд╕ 4 рдФрд░ рдЬрд╝реЗрдВрдб рдлреНрд░реЗрдорд╡рд░реНрдХ 2 рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЗрд╕ рдЕрд╡рд╕рд░ рдХреЛ рд▓реЗрддреЗ рд╣реБрдП, рдореИрдВ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ "рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░" рдПрдХреНрд╕рдЯ рдЬреЗрдПрд╕ 4 рдХреЗ рдХреБрдЫ рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдХреЛ рд░реЛрд╢рди рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдмрд┐рдирд╛ рдПрдХреНрд╕рдЯ рдЬреЗрдПрд╕ рдкрд░ рдХреЛрдИ рднреА рдЖрд╡реЗрджрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╢реНрд░реГрдВрдЦрд▓рд╛, - рдЬреЛрд░ рд╕реЗ рдХрд╣рд╛, - рдореИрдВ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╕реЗ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ)ред

рддреЛ рдЧреНрд░рд┐рдб, рднрд╛рдЧ 1


рдЧреНрд░рд┐рдб рдШрдЯрдХ рдЖрдкрдХреЛ рдкреЗрдЬрд┐рдВрдЧ, рд╕реЙрд░реНрдЯрд┐рдВрдЧ, рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ, рдЕрд╕реАрдорд┐рдд рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░, рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕, рдХрд╕реНрдЯрдо рд░реЗрдВрдбрд░рд░реНрд╕, рдХрдИ рдкреНрд▓рдЧ-рдЗрди, рдПрдХ рдЗрд╡реЗрдВрдЯ рдореЙрдбрд▓, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдЬрд╛рдХреНрд╕, рдЖрд░рд╛рдо, рдПрдЪрдЯреАрдПрдордПрд▓ 5, рдХреБрдХреАрдЬрд╝, рд╕рддреНрд░ рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рд╕реАрдЖрд░рдпреВрдбреА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд▓рдЪреАрд▓реА рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЧреНрд░рд┐рдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ (рдореИрдВрдиреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рднреА рд▓рд╛рдЗрди рдХреЛ рд╣рдЯрд╛рдирд╛ рдЕрд╕рдВрднрд╡ рдерд╛)ред

рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд╛рд▓рд┐рдХрд╛ Ext.grid рдФрд░ Ext.data.ArrayStore


Ext.onReady(function() { var myData = [ ['3m Co', 71.72, 0.02, 0.03, '9/1 12:00am'], ['Alcoa Inc', 29.01, 0.42, 1.47, '9/1 12:00am'], //.................. ['Verizon Communications', 35.57, 0.39, 1.11, '9/1 12:00am'], ['Wal-Mart Stores, Inc.', 45.45, 0.73, 1.63, '9/1 12:00am'] ]; var store = Ext.create('Ext.data.ArrayStore', { fields: ['company','price','change','pctChange','lastChange'], data: myData }); Ext.create('Ext.grid.Panel', { store: store, columns: [ { text : 'Company', dataIndex: 'company' }, { text : 'Price', dataIndex: 'price' }, { text : 'Change', dataIndex: 'change' }, { text : '% Change', dataIndex: 'pctChange' }, { text : 'Last Updated', dataIndex: 'lastChange' } ], height: 350, width: 600, title: '   grid', renderTo: 'grid1' }); }); 

рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рд╛рдЗрдЯ рд╕реЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рдЗрд╕ рдХреЛрдб рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ index.html рдлрд╝рд╛рдЗрд▓ (рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп) рдмрдирд╛рдПрдБ:
 <!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="/resources/css/ext-all.css" type="text/css" /> <script src="/ext-all.js" type="text/javascript"></script> <script src="/examples/grid1.js" type="text/javascript"></script> </head> <body> <p>  grid   Ext.data.ArrayStore</p> <div id="grid1"></div> </body> </html> 


рдореИрдВ рдЗрд╕ рдХрджрдо рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдЖрдк рд╣рдм рдкрд░ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ

рдХреЛрдб рдкрд░ рд╡рд╛рдкрд╕!
рд▓рдЧрднрдЧ рд╣рд░ Ext JS 4 рдПрдкреНрд▓рд┐рдХреЗрд╢рди Ext.onReady (рдлрд╝рдВрдХреНрд╢рди () {...} рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдЬреЛ рд▓реЛрдЧ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ: jQuery (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА (рдлрд╝рдВрдХреНрд╢рди () {ред ..}), - рджреЛрдиреЛрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рд▓рдХреНрд╖реНрдп рдПрдХ рд╣реА рд╣реИ - DOM рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓реЛрдб рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдХреЛрдб рдореЗрдВ рд╕реАрдзреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдЧреИрд░-рд╕рд╣рдпреЛрдЧреА рджреЛ-рд╕реНрддрд░реАрдп рд╕рд░рдгреА myData рдмрдирд╛рдпрд╛ред

рдлрд┐рд░, Ext.create рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ Ext.data.ArrayStore рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА, рдЬреЛ рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реЗ рд╕рд╛рдзрд╛рд░рдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдирдП рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирдП Ext.data.ArrayStore (...), рд▓реЗрдХрд┐рди рддрдм рд╣рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ Ext.data.ArrayStore рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░рдиреА рд╣реЛрдЧреАред

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, Ext JS, Ext.require рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдкреНрд░рд╛рд╡рдзрд╛рди рдХрд░рддрд╛ рд╣реИ:

 Ext.require([ 'Ext.grid.*', 'Ext.data.*', ]); 

рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк Ext.grid рдФрд░ Ext.data рд╕реНрдХреЛрдк рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд░реНрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдЯреЛрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЦреЗрддреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реИ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡рдпрдВ рд▓реЛрдб рдХрд░рдирд╛ рд╣реИред

рдЕрдВрддрд┐рдо рдЪрд░рдг Ext.grid.Panel рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реИред

рд╣рдо рд╕реНрдЯреЛрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ Ext.grid.Panel рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдкрд╛рд╕ рджреЗрддреЗ рд╣реИрдВ, рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рд╣рдо рдЧреНрд░рд┐рдб рдЯреЗрдмрд▓ рдХреЙрд▓рдо рдФрд░ рдкреИрдирд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

рдКрдВрдЪрд╛рдИ (рдКрдВрдЪрд╛рдИ), рдЪреМрдбрд╝рд╛рдИ (рдЪреМрдбрд╝рд╛рдИ), рд╢реАрд░реНрд╖рдХ (рд╢реАрд░реНрд╖рдХ) рдФрд░ рдЖрдИрдбреА-рдХрдВрдЯреЗрдирд░ (рд░реЗрдВрдбрд░рдЯреЙ) рдХреА рдЖрдИрдбреА, рдЬрд╣рд╛рдВ рдПрдХреНрд╕рдЯ рдЬреЗрдПрд╕ рд╣рдорд╛рд░реА рдореЗрдЬ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛ред

рд╡рд╣ рд╕рдм рд╣реИ!

рд╣рдордиреЗ рдЬреЛ рдХреБрдЫ рднреА рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЧреНрд░рд┐рдб рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рднрдВрдбрд╛рд░рдг рдореЗрдВ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЧреНрд░рд┐рдб рдореЗрдВ рд╕реНрддрдВрднреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ - рд╡реЗ рдХреЗрд╡рд▓ рдЙрд╕ рдбреЗрдЯрд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдк рдХреА рддрд░рд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реНрдереИрддрд┐рдХ рдЧреНрд░рд┐рдб рд▓реЗрдмрд▓ рдорд┐рд▓рддрд╛ рд╣реИ:
рдЫрд╡рд┐
рд▓рд╛рдЗрд╡ рдбреЗрдореЛ

рд╣рдо рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Ext.data.ArrayStore рдХреЛ Ext.data.Store рд╕реЗ рдмрджрд▓ рджреЗрдВрдЧреЗред

рдЧреНрд░рд┐рдб рдФрд░ Ext.data.Store


 Ext.onReady(function() { var myData = [ { company: 'Alcoa Inc', price: 71.72, change: 0.02, pctChange: 0.03, lastChange: '9/1 12:00am' }, { company: 'Altria Group Inc', price: 83.81, change: 0.28, pctChange: 0.34, lastChange: '9/1 12:00am' }, { company: 'American International Group, Inc.', price: 81.82, change: 0.12, pctChange: 0.63, lastChange: '9/1 12:00am' } ]; var store = Ext.create('Ext.data.Store', { fields: ['company','price','change','pctChange','lastChange'], data: myData }); var grid = Ext.create('Ext.grid.Panel', { store: store, columns: [ { text : 'Company', dataIndex: 'company' }, { text : 'Price', dataIndex: 'price' }, { text : 'Change', dataIndex: 'change' }, { text : '% Change', dataIndex: 'pctChange' }, { text : 'Last Updated', dataIndex: 'lastChange' } ], height: 350, width: 600, title: '   grid', renderTo: 'grid2' }); }); 

рдЕрдм myData рдореЗрдВ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рд╣реИрд╢) рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдЖрдЧреЗ рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рд╕реНрдХреНрд░реАрди рдкрд░ рд╣рдо рдПрдХ рд╣реА рдЯреЗрдмрд▓ рджреЗрдЦрддреЗ рд╣реИрдВ (рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ рдХрдо рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЕрд▓рдЧ рд╣реЗрдбрд░ рд╣реИ)ред

рдЕрдм рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдЬреЛрдбрд╝реЗрдВред

рдЧреНрд░рд┐рдб, Ext.data.Store рдФрд░ Ext.data.Model


 Ext.onReady(function() { var myData = [ { company: 'Alcoa Inc', price: 71.72, change: 0.02, pctChange: 0.03, lastChange: '9/1 12:00am' }, { company: 'Altria Group Inc', price: 83.81, change: 0.28, pctChange: 0.34, lastChange: '9/1 12:00am' }, { company: 'American International Group, Inc.', price: 81.82, change: 0.12, pctChange: 0.63, lastChange: '9/1 12:00am' } ]; Ext.define('Model', { extend: 'Ext.data.Model', fields: ['company','price','change','pctChange','lastChange'] }); var store = Ext.create('Ext.data.Store', { model: 'Model', data: myData }); var grid = Ext.create('Ext.grid.Panel', { store: store, columns: [ { text : 'Company', dataIndex: 'company' }, { text : 'Price', dataIndex: 'price' }, { text : 'Change', dataIndex: 'change' }, { text : '% Change', dataIndex: 'pctChange' }, { text : 'Last Updated', dataIndex: 'lastChange' } ], height: 350, width: 600, title: '   grid', renderTo: 'grid3' }); }); 

рдореЙрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж: рдпрджрд┐ рд╕реНрдЯреЛрд░ рдбреЗрдЯрд╛ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рддреЛ рдореЙрдбрд▓ рдЗрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдореЙрдбрд▓ рдирд┐рд░рд░реНрдердХ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рд╣рдо рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдмрд╣реБ-рд╕реНрддрд░реАрдп рдПрдореНрдмреЗрдбреЗрдб рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред

рдпрд╣ рдХреЛрдб рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЧреНрд░рд┐рдб рдФрд░ рдкреНрд░реЙрдХреНрд╕реА


 Ext.onReady(function() { Ext.define('myModel', { extend: 'Ext.data.Model', fields: ['company','price','change','pctChange','lastChange'] }); var store = Ext.create('Ext.data.Store', { model: 'myModel', proxy: { type: 'ajax', url: '/examples/data/data.json', reader: { type: 'json', root: 'data' } }, autoLoad: true }); var grid = Ext.create('Ext.grid.Panel', { store: store, columns: [ { text : 'Company', dataIndex: 'company' }, { text : 'Price', dataIndex: 'price' }, { text : 'Change', dataIndex: 'change' }, { text : '% Change', dataIndex: 'pctChange' }, { text : 'Last Updated', dataIndex: 'lastChange' } ], height: 350, width: 600, title: '   grid', renderTo: 'grid4' }); }); 

рдЗрд╕ рдХреНрд╖рдг рд╕реЗ, рдордЬрд╝рд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ - рд╣рдордиреЗ рдЕрдкрдиреА рдЧреНрд░рд┐рдб рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдЕрдкрдиреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдореАрдкрд╕реНрде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ред

рдкреНрд░реЙрдХреНрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдкрдХреЛ рдПрдЧреНрд░реИрдХреНрд╕ рд╕реНрддрд░ рдкрд░ рдРрдЬреИрдХреНрд╕, рдмрд╛рдХреА рдпрд╛ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рд╕реА рднреА рд╕реАрдЖрд░рдпреВрдбреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рдкрд╛рдардХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ (рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ) рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред

рд╣рдо ajax рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ (autoLoad: true) рдирд┐рд░реНрджрд┐рд╖реНрдЯ url рдкрд░ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ (рдЕрдиреБрд░реЛрдз рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ GET рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ), рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░реАрдбрд░ рдЙрдиреНрд╣реЗрдВ json рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рд░реВрдЯ: 'рдбреЗрдЯрд╛' рдкрд╛рдардХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд░реВрдЯ рдиреЛрдб рдореЗрдВ рдХреБрдВрдЬреА "рдбреЗрдЯрд╛" рд╣реИред

рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЧреНрд░рд┐рдб рдХреЗрд╡рд▓ 25 рд▓рд╛рдЗрдиреЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдорд╛рд░реЗ рднрдВрдбрд╛рд░рдг рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рдкреЗрдЬрд╕рд╛рдЗрдЬ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
  var store = Ext.create('Ext.data.Store', { model: 'myModel', pageSize: 50, proxy: { type: 'ajax', url: '/examples/data/data.json', reader: { type: 'json', root: 'data' } }, autoLoad: true }); 


рдЧреНрд░рд┐рдб рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреГрд╖реНрдард╛рдВрдХрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдХреБрдЫ "рдЯреВрд▓рдмрд╛рд░" рдореЗрдВ рдЧреНрд░рд┐рдб рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рд▓рд┐рдП Ext.PagingToolbar рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, bbar рдореЗрдВ :
  var grid = Ext.create('Ext.grid.Panel', { store: store, columns: [ { text : 'Company', dataIndex: 'company' }, { text : 'Price', dataIndex: 'price' }, { text : 'Change', dataIndex: 'change' }, { text : '% Change', dataIndex: 'pctChange' }, { text : 'Last Updated', dataIndex: 'lastChange' } ], height: 350, width: 600, title: '   grid', renderTo: 'grid5', bbar: Ext.create('Ext.PagingToolbar', { store: store }) }); 


рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреЗрдЬрд┐рдиреЗрд╢рди рд╣реИ:
рдЫрд╡рд┐
рд▓рд╛рдЗрд╡ рдбреЗрдореЛ

рдореИрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЧреНрд░рд┐рдб рдЯреЗрдмрд▓ рдХреЗ рд╕рднреА рдХреЙрд▓рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдЫрдБрдЯрд╛рдИ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдХрд┐ рдЕрдиреНрдпрдерд╛ рд╕рдВрдХреЗрдд рди рджрд┐рдпрд╛ рдЬрд╛рдПред рдпрджрд┐ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ "рд░рд┐рдореЛрдЯрд╕реЛрд░реНрдЯ: рдЯреНрд░реВ" рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

 Ext.onReady(function() { Ext.define('myModel', { extend: 'Ext.data.Model', fields: ['company','price','change','pctChange','lastChange'] }); var store = Ext.create('Ext.data.Store', { model: 'myModel', proxy: { type: 'ajax', url: '/examples/data/data.json', reader: { type: 'json', root: 'data' } }, autoLoad: true, remoteSort: true }); var grid = Ext.create('Ext.grid.Panel', { store: store, columns: [ { text : 'Company', dataIndex: 'company' }, { text : 'Price', dataIndex: 'price' }, { text : 'Change', dataIndex: 'change' }, { text : '% Change', dataIndex: 'pctChange' }, { text : 'Last Updated', dataIndex: 'lastChange' } ], height: 350, width: 600, title: '   grid', renderTo: 'grid6', bbar: Ext.create('Ext.PagingToolbar', { store: store }) }); }); 


рдЕрдм рдЬрдм рдЖрдк рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдлрд╛рдпрд░рдмрдЧ рдореЗрдВ рдирд┐рдореНрди рдЪрд┐рддреНрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рдЫрд╡рд┐

рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЧреНрд░рд┐рдб рдЯреЗрдмрд▓ рдореЗрдВ рдлрд┐рд▓реНрдЯрд░


 Ext.Loader.setPath('Ext.ux', '/public/ux'); Ext.require([ 'Ext.ux.grid.FiltersFeature', ]); Ext.onReady(function() { Ext.define('myModel', { extend: 'Ext.data.Model', fields: ['company','price','change','pctChange','lastChange'] }); var store = Ext.create('Ext.data.Store', { model: 'myModel', proxy: { type: 'ajax', url: '/public/examples/data/data.json', reader: { type: 'json', root: 'data' } }, autoLoad: true, remoteSort: true }); var filters = { ftype: 'filters', encode: true, local: false }; var grid = Ext.create('Ext.grid.Panel', { store: store, features: [filters], columns: [ { text : 'Company', dataIndex: 'company', filter: { type: 'string' } }, { text : 'Price', dataIndex: 'price', filter: { type: 'int' } }, { text : 'Change', dataIndex: 'change', filter: { type: 'float' } }, { text : '% Change', dataIndex: 'pctChange', filter: { type: 'float' } }, { text : 'Last Updated', dataIndex: 'lastChange', filter: { type: 'date' } } ], height: 350, width: 600, title: '  grid  ', renderTo: 'grid8', bbar: Ext.create('Ext.PagingToolbar', { store: store }) }); }); 

рдкрд╣рд▓реА рдмрд╛рд░, рд╣рдорд╛рд░реЗ рдЧреНрд░рд┐рдб рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдХреЛрдб рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреА:
 Ext.Loader.setPath('Ext.ux', '/public/ux'); Ext.require([ 'Ext.ux.grid.FiltersFeature', ]); 

рдпрд╣ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ Ext JS рдХреЛ Ext.ux.grid.iltersFeature рд╡рд░реНрдЧ рдХреЛ / public / ux / рдЧреНрд░рд┐рдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреА рд╣реИ, рдЬреЛ рдХрд┐ рдЧреНрд░рд┐рдб рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдПрдХ рдЕрдиреНрдп рдирд╡реАрдирддрд╛ рд╣реИ рдлрд┐рд▓реНрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ:
 var filters = { ftype: 'filters', encode: true, local: false }; 

рдпрд╣рд╛рдБ рд╣рдо рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдЧреБрдгреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рд╕реНрдерд╛рдиреАрдп: рдЭреВрдареА рд╕рдВрдкрддреНрддрд┐ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдорд╛рди рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддреА рд╣реИ, рдФрд░ рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛: рд╕рдЪреНрдЪрд╛ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рди рдХрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВред

рдЗрд╕рд▓рд┐рдП, рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ: рдХреЙрд▓рдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдлрд╝рд┐рд▓реНрдЯрд░:
 filter: { type: 'string' } 

рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЗрдВрдЯ, рдлреНрд▓реЛрдЯ рдФрд░ рддрд┐рдерд┐, - рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреЙрд▓рдо рд╢реАрд░реНрд╖рдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдлрд╝рд┐рд▓реНрдЯрд░ рддрддреНрд╡ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
рдФрд░ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдСрдирдХреЙрдиреНрдЧ рдЗрд╡реЗрдВрдЯ рдореЗрдВ рдЖрдЧ рд▓рдЧ рдЬрд╛рдПрдЧреА; рдЯреЗрдмрд▓ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рдлрд╝рд╛рдпрд░рдмрдЧ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдЬреЗрдПрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред
рдЫрд╡рд┐
рд▓рд╛рдЗрд╡ рдбреЗрдореЛ (рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдбреЗрдЯрд╛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, - рдХреВрдбрд╝реЗрджрд╛рди рдореЗрдВ рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╣рдмрд▓ рдкреНрд░рднрд╛рд╡ рд╕реЗ рдбрд░рддрд╛ рд╣реВрдВ)

рд▓реЗрдЦ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдореИрдВ рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдореЙрдбрд▓ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
 fields: [ {name: 'weight', type: 'int'}, {name: 'company', type: 'string'}, {name: 'price', type: 'float'}, {name: 'change', type: 'float'}, {name: 'pctChange', type: 'float'}, {name: 'lastChange', type: 'string'} ] 


рджреВрд╕рд░реЗ, GET рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдорд╛рдВрдЧрдирд╛ рдмрдВрдж рдХрд░реЗрдВ:
 Ext.create('Ext.data.Store', { pageSize: 10, model: 'myModel', proxy: { type: 'ajax', url: '/examples/data/data2.json', actionMethods: { read: 'POST' }, reader: { type: 'json', root: 'data', totalProperty: 'totalCount' } }, autoLoad: true, remoteSort: true }); 


рдЯреЗрдмрд▓ рдХреЙрд▓рдо рдХреЛ рд░рдмрд░ рдмрдирд╛рдПрдВ:

 { text : '% Change', flex:1, dataIndex: 'pctChange' }, 


рдЪрд▓рд┐рдП рдПрдХ рднрдВрдбрд╛рд░рдг рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:
 store: Ext.data.StoreManager.lookup('gridStore'), 


рдЪрд▓реЛ рдЧреНрд░рд┐рдб рдХреЙрд▓рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рддреЗ рд╣реИрдВ - рдЗрд╕реЗ рднреЛрд▓рд╛-рднрд╛рд▓рд╛ рд▓рдЧрддрд╛ рд╣реИред
 renderer: function(value){ if(value > 75){ value = '<span style="color:#ff0000;">' + value + '</span>'; } else { value = '<span style="color:#00ff00;">' + value + '</span>'; } return value; } 


рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкреЗрдЬрд┐рдиреЗрдЯрд░ рдореЗрдВ рдЯреЗрдмрд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝реЗрдВ:
 bbar: Ext.create('Ext.PagingToolbar', { store: store, displayInfo: true, displayMsg: 'Displaying topics {0} - {1} of {2}', emptyMsg: "No topics to display" }) 

(рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдбреЗрдЯрд╛ json рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЯреЛрдЯрд▓рдкреНрд░реЙрдкрд░реНрдЯреА рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛:
 Ext.Loader.setPath('Ext.ux', '/ux'); Ext.require([ 'Ext.ux.grid.FiltersFeature', ]); Ext.onReady(function() { Ext.define('myModel', { extend: 'Ext.data.Model', fields: [ {name: 'weight', type: 'int'}, {name: 'company', type: 'string'}, {name: 'price', type: 'float'}, {name: 'change', type: 'float'}, {name: 'pctChange', type: 'float'}, {name: 'lastChange', type: 'string'} ] }); Ext.create('Ext.data.Store', { pageSize: 10, model: 'myModel', proxy: { type: 'ajax', url: '/examples/data/data2.json', actionMethods: { read: 'POST' }, reader: { type: 'json', root: 'data', totalProperty: 'totalCount' } }, autoLoad: true, remoteSort: true }); var filters = { ftype: 'filters', encode: true, local: false }; var grid = Ext.create('Ext.grid.Panel', { store: Ext.data.StoreManager.lookup('gridStore'), features: [filters], columns: [ { text : 'Weight', dataIndex: 'weight', width: 50, sortable: false, filter: { type: 'int' } }, { text : 'Company', dataIndex: 'company', flex:1, filter: { type: 'string' } }, { text : 'Price', dataIndex: 'price', flex:1, renderer: function(value){ if(value > 75){ value = '<span style="color:#ff0000;">' + value + '</span>'; } else { value = '<span style="color:#00ff00;">' + value + '</span>'; } return value; } }, { text : 'Change', flex:1, dataIndex: 'change' }, { text : '% Change', flex:1, dataIndex: 'pctChange' }, { text : 'Last Updated', flex:1, dataIndex: 'lastChange', filter: { type: 'date' } } ], height: 350, width: 600, title: ' ...', renderTo: 'grid9', bbar: Ext.create('Ext.PagingToolbar', { store: store, displayInfo: true, displayMsg: 'Displaying topics {0} - {1} of {2}', emptyMsg: "No topics to display" }) }); }); 


рдФрд░ рд╣рдо рд╕рд░реНрд╡рд░, рдкреЗрдЬрд┐рдиреЗрд╢рди рдФрд░ рд╕рд░рд▓рддрдо рдХрд╕реНрдЯрдо-рд░реЗрдВрдбрд░рд░ рдкрд░ рдЫрдБрдЯрд╛рдИ рдФрд░ рдЫрд╛рдирдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реБрдВрджрд░ рдЧреНрд░рд┐рдб рдЯреЗрдмрд▓ рджреЗрдЦрддреЗ рд╣реИрдВ:
рдЫрд╡рд┐

рдЙрдкрд╕рдВрд╣рд╛рд░ред


рдкреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреА рд╡рдлрд╛рджрд╛рд░реА рдХреА рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВ - рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╣реИред рдкреНрд░рд┐рдп рдпреВрдПрдлрдУ, рдореИрдВ рдЕрдкрдиреЗ рд▓реЗрдЦ рдХреА рдкрд╢реНрдЪрд╛рддрд╛рдк рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣реИрдмрд░ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдбреЗрдореЛ (рдФрд░ рдХреБрдЫ рдФрд░) рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдлреЗрдВрдХрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ, рдЬрд╛рдо, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рдЕрдиреБрд░реЛрдзреЛрдВ рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдореИрдВ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред рдпрджрд┐ рдпрд╣ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЛ рднреА рд░реБрдЪрд┐рдХрд░ рд▓рдЧреЗ, рддреЛ рдореБрдЭреЗ рдПрдХреНрд╕рдПрд╕ рдЬреЗрдПрд╕ 4 рдкрд░ рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, - рдореИрдВ рдПрдХреНрд╕рдЯреА рдЬреЗрдПрд╕ рдЧреНрд░рд┐рдб (рдкреНрд▓рдЧрдЗрдиреНрд╕, рдЯреЗрдореНрдкреНрд▓реЗрдЯ, рдИрд╡реЗрдВрдЯреНрд╕, рдкреНрд░реЙрдкрд░реНрдЯреАрдЧреНрд░рд┐рдб рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛, рд╕реАрдЖрд░рдпреВрдбреА рдФрд░ рдкрд╛рдардХреЛрдВ ...) рдкрд░ рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рднреА рдХрд░рддрд╛ рд╣реВрдВред рдПрдХреНрд╕рдЯ рдЬреЗрдПрд╕ 4 рдврд╛рдВрдЪреЗ рдХреЗ рдЕрдиреНрдп рдкрд╣рд▓реВред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In169125/


All Articles