Benutzer-Werkzeuge

Webseiten-Werkzeuge


xul_trees_markierung

Markierung von Treerows auslesen

Um die markierte Zeile eines XUL Trees auszulesen kann folgender Code verwendet werden

var tree=document.getElementById('adresse-tree');
if(tree.currentIndex>=0)
	i = tree.currentIndex;
else
	i = 0;
 
col = tree.columns ? tree.columns["adresse-treecol-adresse_id"] : "adresse-treecol-adresse_id";
SelectedID = tree.view.getCellText(i,col);

Wenn es sich um einen Multiselect Tree handelt, in dem mehrere Zeilen auf einmal markiert werden können ist der Code etwas umfangreicher

function getMarkierteAdressen()
{
	var start = new Object();
	var end = new Object();
	var numRanges = tree.view.selection.getRangeCount();
	var data;
        var anzahl=0;
 
	//alle markierten Eintraege holen
	for (var t = 0; t < numRanges; t++)
	{
  		tree.view.selection.getRangeAt(t,start,end);
		for (var v = start.value; v <= end.value; v++)
		{
			col = tree.columns ? tree.columns["adresse-treecol-adresse_id"] : "adresse-treecol-adresse_id";
			id = tree.view.getCellText(v,col);
			data[anzahl] = id;
                        anzahl = anzahl+1;
		}
	}
        return data;
}

Markieren von Einträgen

Mit folgender Funktion kann ein Eintrag mit einer bestimmten ID markiert werden

function TreeSelectEntry(SelectedID)
{
	var tree=document.getElementById('adressen-tree');
	var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
 
	//In der globalen Variable ist der zu selektierende Eintrag gespeichert
	if(SelectedID!=null)
	{
	   	for(var i=0;i<items;i++)
	   	{
	   		//id der row holen
			col = tree.columns ? tree.columns["adresse-treecol-adresse_id"] : "adresse-treecol-adresse_id";
			adresse_id=tree.view.getCellText(i,col);
 
			if(adresse_id == SelectedID)
			{
				//Zeile markieren
				tree.view.selection.select(i);
				//Sicherstellen, dass die Zeile im sichtbaren Bereich liegt
				tree.treeBoxObject.ensureRowIsVisible(i);
				return true;
			}
	   	}
	}
}
xul_trees_markierung.txt · Zuletzt geändert: 2013/04/13 18:23 (Externe Bearbeitung)