YUI treeview
Üldiselt Yahoo poisid teinud palju Web 2 stiilis komponente. Seekord vaataks Treeviewd.
Tüüpiline laadimise kood (2.6.0 ver):
function overrideSaveValue(v)
{
node=v.node;
//node.data.label = v.inputElement.value;
node.getLabelEl().innerHTML=v.inputElement.value;
alert(node.data);
return true;
}
function idynLoad(node, fnLoadComplete)
{
// lihtne json callback näide, success parameetrid sõltuvad kuidas välja kutsud
var oCallback =
{
success: function(oRequest,oResponse,oPayload)
{
var iNode = new YAHOO.widget.TextNode("test", oPayload.node, false) ;
iNode.data=...mingi json abil saadud elemendi id;
iNode.editable=true; // märgime, et inline editing lubatud
// kavalus laeme nö default handleri üle, et saaksime async stiilis andmebaasi kirjutada andmeid, kui nodet inline stiilsi muudetakse
iNode.saveEditorValue=overrideSaveValue;
// anname teada, et child item laetud !
oPayload.fnLoadComplete();
},
failure: function(oRequest,oResponse,oPayload)
{
oPayload.fnLoadComplete();
},
argument:
{
"node": node,
"fnLoadComplete": fnLoadComplete
},
timeout: 10000
};
// json väljakutse...
...
}
// loome puu...
var tree = new YAHOO.widget.TreeView("container");
var rootnode = tree.getRoot();
tree.setDynamicLoad(idynLoad, "ygtloading ygtvlph ");
// teeme ühe root elemendi...
var myroot = new YAHOO.widget.TextNode('Root node', rootnode, true);
myroot.data=0;
myroot.editable=false;
// võimaldame inline editi !!!!
tree.subscribe('dblClickEvent',tree.onEventEditNode);
// joonistame puu
tree.render();
Nii lihtne see ongi :))))))
Kommentaare ei ole:
Postita kommentaar