Autor Zpráva
kyklop
Profil
Zdravím,
byl by někdo ochoten mi na názorném příkladu vysvětlit použití UI komponenty DataGrid? Docela by mne zajímalo, co to umí, ale nějak se v tom neumím pořádně zorientovat..
díky
fenrir
Profil *
No co umí komponenta dataGrid

Takže defakto umí vkládat sama do sebe objekty, movie clip, combobox, prostě jakejkoliv objekt.

Použití je docela jednoduché...

//import as
import mx.controls.gridclasses.DataGridColumn;
// zaregistrujeme styly (barvy)
mx.styles.StyleManager.registerColorName("claropcrj", 0xffebcc);
mx.styles.StyleManager.registerColorName("pcrj", 0xffae5e);
mx.styles.StyleManager.registerColorName("escuropcrj", 0xff9900);
mx.styles.StyleManager.registerColorName("line", 0xA2A6A9);

// nadefinujeme styl pro GRID styl se bude jmenovat newStyle
_global.styleObj.styleName = "newStyle";
styles.newStyle = styleObj;
styleObj = _global.styles.newStyle=new mx.styles.CSSStyleDeclaration();
styleObj.fontFamily = "_sans";
styleObj.fontSize = 10;
styleObj.fontWeight = "bold";
styleObj.color = "black";
styleObj.setStyle("backgroundColor", "claropcrj");

// grid je umístěn v movie PS.kontakty a jmenuje se kontaktyGrid
PS.kontakty.kontaktyGrid.setStyle("styleName", "newStyle"); // přiřadíme styl
PS.kontakty.kontaktyGrid.setStyle("hGridLines", true); // zobrazovat horizontalni linky ?
PS.kontakty.kontaktyGrid.setStyle("hGridLineColor", 0xA2A6A9); // barva hor. linek
PS.kontakty.kontaktyGrid.setStyle("themeColor", "pcrj"); // barva pozadí barvy jsou nastaveny dle stylu které se nastavují na začátku
PS.kontakty.kontaktyGrid.setStyle("rollOverColor", "escuropcrj");
PS.kontakty.kontaktyGrid.setStyle("textRollOverColor", "black");
PS.kontakty.kontaktyGrid.setStyle("selectionEasing", "escuropcrj");
PS.kontakty.kontaktyGrid.setStyle("selectionColor", "pcrj");
PS.kontakty.kontaktyGrid.setStyle("textSelectedColor", "black");

PS.kontakty.kontaktyGrid.hScrollPolicy = "on"; // chceme zobrazit horizontální scroll, pokud todle zakomnuješ tak tam nebude
PS.kontakty.kontaktyGrid.maxHPosition = 3740; // celková delka gridu to znamená jak je vlastně dlouhej ten grid co můžeš horizontálně posouvbat
// pokud zadáš pouze hScrollPolicy = "on"; tak sice bude dlouhej dle těch položek ale horizontální linky mezi buňkama tam nebudo teda budou ale jenom částečně

// Nadefinujeme jednotlivé sloupce
var column = new DataGridColumn("0");
column.headerText = "Odstr.";
column.width = 35;
column.resizable = false;
PS.kontakty.kontaktyGrid.addColumn(column);

var column = new DataGridColumn("1");
column.headerText = " Upr.";
column.width = 35;
column.resizable = false;
PS.kontakty.kontaktyGrid.addColumn(column);

var column = new DataGridColumn("2");
column.headerText = " Typ spojení";
column.width = 120;
column.resizable = false;
PS.kontakty.kontaktyGrid.addColumn(column);

var column = new DataGridColumn("3");
column.headerText = " Spojení";
column.width = 210;
column.resizable = false;
PS.kontakty.kontaktyGrid.addColumn(column);

// První sloupec bude červenej a druhej modrej
PS.kontakty.kontaktyGrid.getColumnAt(0).setStyle("backgroundColor", 0xA4D1FF);
PS.kontakty.kontaktyGrid.getColumnAt(1).setStyle("backgroundColor", 0xFFB7B7);


// definujeme proměnou myarray

myArray = new Array();
myArray[0] = new Array();
myArray[0][0] = "test";
myArray[0][1] = "test";
myArray[0][2] = "test";
myArray[0][3] = "test";
myArray[1] = new Array();
myArray[1][0] = "test";
myArray[1][1] = "test1";
myArray[1][2] = "test2";
myArray[1][3] = "test3";

//naplníme grid
PS.kontakty.kontaktyGrid.dataProvider = myArray;



/// tak a taky nějakou událost by jsem mohli zpracovávat

display = new Object();
display.cellPress = function(evt) {
dat = "";
// evt.itemIndex je číslo řádku na které je kliknuto a to [0] je sloupec z kterého chi zíkat hodnotu
dat = PS.kontakty.kontaktyGrid.dataProvider[evt.itemIndex]["0"]+"#@!HONZA";
// Taky můžem zjistit na jakej column, sme vlastně klikli
column = evt.columnIndex.toString();

// nebo ten řádek jak už sem to psal
radek = evt.itemIndex.toString();
// Zjistíme jestli není záznam prázdnej jinak by to nebylo funkční a reagovalo by to i na prázdné řádky, musí se to testovat na sloupci kterej je vždycky vyplněnej
if (dat != "undefined#@!HONZA") {

}
};

// událost cellPress
PS.kontakty.kontaktyGrid.addEventListener("cellPress", display);

Kdyby něco tak ještě napiš zatím čau honza....
Fenrir
Profil
To co jsem napsal v tom předchozím příspěvku tak je možnost jak tam vkládat prostej text, pokud by jsi potřeboval vkládat objekty tak to je trochu složitější ale jde to já to používam na zobrazení stavů abych tam nepsal ano - ne nebo 1 - 0 tak tam prostě zobrazím červenej nebo zelenj zaškrtávák nebo fajfku...
kyklop
Profil
Dík moc, mrknu na to, kdybys jako chtěl, mohl bys pro mne udělat jako takový příklad, dejme tomu s comboboxem, a nějakýma jinýma UI komponentama a dal by se tam dejme tomu umístit nějaký inputtext, případně zapisovatelné pole? A¨ještě jedna technická. Pak se ta data z toho vytahujou jak? Samozřejmě se na to budu snažit přijít sám, ale znám se, stejně bych se na to časem zeptal a tak se raděi ptám hned ;-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0