Autor | Zpráva | ||
---|---|---|---|
fenrir Profil * |
#1 · Zasláno: 27. 11. 2005, 23:53:04
Dámy a pánové, před delší dobou jsem potřenoval použít komponentu datagrid, po několika méně či více vydfařených pokusech jsem došel k tomuto závěru:
ActionScript: ////////////////////////////////// import mx.controls.gridclasses.DataGridColumn; ////////////////////////////////// // zaregistrujeme cores - styl barvy mx.styles.StyleManager.registerColorName("barva1", 0xffebcc); mx.styles.StyleManager.registerColorName("barva2", 0xffae5e); mx.styles.StyleManager.registerColorName("barva3", 0xffff5e); .... .... // Nadefinujeme styl pro data_grid styleObj.styleName = "newStyle"; _global.styles.newStyle = styleObj; styleObj = _global.styles.newStyle=new mx.styles.CSSStyleDeclaration(); styleObj.fontFamily = "_sans"; // font styleObj.fontSize = 10; // velikost fontu styleObj.fontWeight = "bold"; // specifikace fontu (zde tučně) // platí po header colums (názvy sloupců) styleObj.color = "black"; // barva styleObj.setStyle("backgroundColor", "barva1"); // pozadí // objekt data_grid je komponenta dataGrid data_grid.setStyle("styleName", "newStyle"); data_grid.setStyle("hGridLines", true); // zobrazit horizontální oddělělení řádků?? true | false data_grid.setStyle("hGridLineColor", 0xA2A6A9); // barva horizontálních sloupců data_grid.setStyle("themeColor", "barva3"); data_grid.setStyle("rollOverColor", "barva2"); // při kliknutí na řádku jak se má zvíraznit - barva data_grid.setStyle("textRollOverColor", "black"); // jak se má zvíraznit text - barva data_grid.setStyle("selectionEasing", "barva2"); data_grid.setStyle("selectionColor", "barva3"); data_grid.setStyle("textSelectedColor", "black"); data_grid.hScrollPolicy = "on"; // zobrazit u dadagridu horizontální posuvník? on | off data_grid.maxHPosition = 3740; // maximální délka horizontálního posuvníku - pixel //A konečně definování sloupců // Podrobnosti var column = new DataGridColumn("PODR"); column.headerText = "Detail"; column.width = 50; data_grid.addColumn(column); // sloupec 1 - 8 var column = new DataGridColumn("0"); column.headerText = "E_UID"; column.width = 50; data_grid.addColumn(column); // sloupec 15 - 8 var column = new DataGridColumn("1"); column.headerText = "Dat.ohlaš"; column.width = 80; data_grid.addColumn(column); A sice tento script vám vytvoří v datagridu 3 sloupce z názvami Detail | E_UID | Dat.ohlaš naplnění gridu datama data_grid.DataProvider = arrayPole... struktura pole arrayPole = new Array(); arraypole[0] = new Array(); arrayPole[0][0] = aaa arrayPole[0][1] = bbb arrayPole[0][2] = ccc arrayPole = new Array(); arrayPole[1][0] = aaa arrayPole[1][1] = bbb arrayPole[1][2] = ccc Jestliže naplnít toto pole do grdidu viz výše... budete pravděpodobně překvapeni že Vám první sloupec zůstal prázdný. Ovšem pokud se podíváte blíže na script zjistíte že: var column = new DataGridColumn("PODR"); ... ... var column = new DataGridColumn("0"); ... ... var column = new DataGridColumn("1"); ... ... první slopec se "jmenuje" PODR zápis by měl vypadat tedy takto: arrayPole = new Array(); arraypole[0] = new Array(); arrayPole[0]["PODR"] = aaa arrayPole[0][1] = bbb arrayPole[0][2] = ccc arrayPole = new Array(); arrayPole[1]["PODR"] = aaa arrayPole[1][1] = bbb arrayPole[1][2] = ccc Teď je již vše OK Samozřejmě je možné měnit i pořadí sloupců: var column = new DataGridColumn("1"); ... ... var column = new DataGridColumn("0"); ... ... var column = new DataGridColumn("PODR"); ... ... Po naplnění dataGridu datama uvidíte data přeházená, prostě se bere v potaz jméno pole v array a jméno v data gridu. Pro ůplnost dodávám že jsem se setkal z problémem naplnění DataGridu funkcí DataProvider ovšem vyřešila to funkce ¨ for(i=0,i<arrayPole.length;i++) { } |
||
Fenrir Profil * |
#2 · Zasláno: 27. 11. 2005, 23:57:09
Nějak se mě to odeslalo dřív :(
DataProvider ovšem vyřešila to funkce ¨ novePole = new Array(); for(i=0,i<arrayPole.length;i++) { // A tady defakto provedu copírování ¨pole novePole[i] = new Array(); novePole[i]["PODR"] = arrayPole[i]["PODR"]; novePole[i][1] = arrayPole[i][0]; novePole[i][2] = arrayPole[i][1]; } data_grid.dataProvider = novePole; i Když nechápu proč :( Mělo by to snad bejt bez chyb, ale psal sem to od ruky takže nevím na 100%. Zatím čau, a hlavně flash není jen grafika!!!!! |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0