用的方法是在添加一行的按钮下面用html拼的字符串
html += "";
下面是初始化combotree
$("#sqhwmc"+num+"").combotree({
idFiled:"id",
textFiled:"nametype",
parentField:"parentid",
editable : true,
url: 'xhSqbController.do?serchTree',
onBeforeSelect: function (node) {
if (!$(this).tree('isLeaf', node.target)) {
return false;
}
},
onSelect: function(node) {
var csurl = 'xhSqbController.do?serchhwcs&hwmc='+node.text;
var num = $("#add_xhSqbxx_table").find("tr").length;
for(var i =0;i $('#sqhwcs'+i+'').combobox('reload',csurl);
}
},
keyHandler : {
query : function(q) {
var t = $(this).combotree('tree');
var nodes = t.tree('getChildren');
for(var i=0; i var node = nodes[i];
if (node.text.indexOf(q) >= 0){
$(node.target).show();
} else {
$(node.target).hide();
}
var opts = $(this).combotree('options');
if (!opts.hasSetEvents){
opts.hasSetEvents = true;
var onShowPanel = opts.onShowPanel;
opts.onShowPanel = function(){
var nodes = t.tree('getChildren');
for(var i=0; i<nodes.length; i++){
$(nodes[i].target).show();
}
onShowPanel.call(this);
};
$(this).combo('options').onShowPanel = opts.onShowPanel;
}
}
}
}
});
idFiled,textFiled和parentFiled是按照Ztree的数据格式重写的方法,现在的问题是在onselect的方法里面 无论用什么方法也获取不到combotree的id或者当前的行数。
combobox里面能获取到id的方法$(this).attr('id');在combotree是undefined
使用$(this).parents('tr')或者$(this).closest('tr')也获取不到tr
异步操作的话,要在同一进程内获取。