Autor Zpráva
fenrir
Profil *
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 *
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!!!!!
Toto téma je uzamčeno. Odpověď nelze zaslat.

0