通过一个查询, 对于 树状的路径整个一次查询
用js 将它显示出来.
function picklistchange(){
_select = $(this);
_hidden_id = _select.attr('hidden-id');
_un = _select.attr('un');
//Remove all the subsequent
_select.nextAll().remove();
_lovtree = _select.data('lovtree');
_rowvalue = _select.data('rowvalue');
//This is value of Current Select
_selected = _select.find(':selected');
if(_selected.attr('is_leaf')=="{DB::T}"){
$("#"+_hidden_id).val(_select.val());
_select.after("<img src='/s.gif' class='successimg'/>");
}else{
_val = _select.val();
_k = _selected.attr('k');
//Getting Children list
if(_lovtree.c[_k].c == undefined){
return false;
}
_c_lovtree = _lovtree.c[_k];
_c_select = $('<SELECT>').data('lovtree',_c_lovtree).
data('rowvalue',_rowvalue).
attr('hidden-id',_hidden_id).attr('un',_un).
attr('name',_un+'_'+_k);
$("<OPTION>").append("{__('L_Select')}").appendTo(_c_select);
//Building the option list
for(var _kid in _c_lovtree.c){
_lov = _c_lovtree.c[_kid]['lov'];
$("<OPTION>").val(_lov.lov_id).append(_lov.v).attr('k',_lov.id).attr('is_leaf',_lov.is_leaf).appendTo(_c_select);
//Insert after
_select.after(_c_select);
//Onchange
}
_c_select.change(picklistchange);
if(_rowvalue){
_c_select.find("[value="+_rowvalue[_k]+"]").attr("selected","selected");
_c_select.change();
}
}
}