JavaScript DHTML/GUI Components/Sortable Listbox
Sortable Listbox in JavaScript
<html>
<head>
<title>DynAPI Examples - HTML Listbox</title>
<script language="JavaScript" src="./dynapisrc/dynapi.js"></script>
<script language="Javascript">
dynapi.library.setPath("./dynapisrc/");
dynapi.library.include("dynapi.api");
dynapi.library.include("TemplateManager");
dynapi.library.include("HTMLListbox");
dynapi.library.include("HTMLButton");
</script>
<script language="Javascript">
var o={
mng:"Mangos",
car:"Carrots",
plu:"Plums",
apl:"Apples",
prs:"Pears",
org:"Oranges",
grp:"Grapes",
pep:"Pepper"
};
var t = "This is the Template:<center><form><table border="0" width="250"><tr><td colspan="3">Select fruits or vegetables:</td></tr><tr><td align="center">{@lst1}</td><td align="center" >{@btn1}<br>{@btn2}</td><td align="right">{@lst2} </td></tr><tr><td align="right" colspan="3">{@btn3} </td></tr></table></form></center>";
var tp = new Template(t,100,100,300,200,"#EEEEEE");
tp.addChild(new HTMLListbox(null,o),"lst1");
tp.lst1.setMultiSelect(true);
tp.lst1.addEventListener({
onchange:function(e){
var o=e.getSource();
status = o.getSelected();
}
});
tp.addChild(new HTMLListbox(null),"lst2");
tp.lst2.addItem("Melons","mel");
tp.addChild(new HTMLButton(null," > "),"btn1");
tp.addChild(new HTMLButton(null," < "),"btn2"); //"
tp.addChild(new HTMLButton(null,"Sort List"),"btn3");
tp.btn1.lstSrc = tp.lst1;
tp.btn1.lstTar = tp.lst2;
tp.btn2.lstSrc = tp.lst2;
tp.btn2.lstTar = tp.lst1;
var evt = {
onclick:function(e){
var itm,o=e.getSource();
var v=o.lstSrc.getSelected();
if(v) {
if(typeof(v)=="string") v=[v];
for(var i=0;i<v.length;i++){
itm = o.lstSrc.getItem(v[i]);
if(itm) o.lstTar.addItem(itm.text,itm.value);
o.lstSrc.removeItem(v[i]);
}
}
}
}
tp.btn1.addEventListener(evt);
tp.btn2.addEventListener(evt);
tp.btn3.onclick=function(e){
tp.lst2.sortBy("text",false);
};
dynapi.document.addChild(tp);
</script>
</head>
<body>
<script>
dynapi.document.insertAllChildren();
</script>
</body>
</html>
<A href="http://www.wbex.ru/Code/JavaScriptDownload/dynapi.zip">dynapi.zip( 791 k)</a>