html
<input class="easyui-combotree" id="ClassTree" style="width:240px;height:28px;" >
js
/*
* 设置下拉树为单选
* 设置下拉树只能选叶子节点,不能选父级节点
*/
$("#comboDepartment").combotree({
url: 'Ajax/Department/GetDepartmentTreeData.aspx',
multiple: false,//当为true时,为多选,false为单选
lines: true,
checkbox: true,
onlyLeafCheck: true,//当为多选时,起作用,只允许选择叶子节点
onSelect: function (node) {//当为单选时,只允许选择叶子节点的设置
//返回树对象
var tree = $(this).tree;
//选中的节点是否为叶子节点,如果不是叶子节点,清除选中
var isLeaf = tree('isLeaf', node.target);
if (!isLeaf) {
//清除选中
$('#comboDepartment').combotree('clear');
}
}
});
$("#btnQuery").click(function () {
var queryStr = $("#txtQuery").val();
if (queryStr == null) {
queryStr = "%";
}
var ClassID = $("#ClassTree").combotree('getValues').toString();
$("#List").datagrid("load", { queryStr: encodeURI(queryStr), ClassID: ClassID });
});
#region 产品类别
[HttpPost]
public JsonResult GetSysYearlyPlanClassList(string id)
{
string ID = "0";
if (id != null)
ID = id;
List<SysYearlyPlanClassModel> listIndustry = m_SysYearlyPlanClassBLL.GetAll();
var topItems = listIndustry.Where(e => e.ParentClassID == ID).ToList(); //顶级分类
List<SysYearlyPlanClassModel> topModels = new List<SysYearlyPlanClassModel>();
foreach (var item in topItems)
{
GetChildren(listIndustry, item);
topModels.Add(item);
}
var json = (from r in topModels
select new SysYearlyPlanClassModel()
{
id = r.ClassID,
text = r.ClassName,
children = r.children
}).ToArray();
return Json(json);
}
protected void GetChildren(List<SysYearlyPlanClassModel> allList, SysYearlyPlanClassModel curItem)
{
var subItems = allList.Where(ee => ee.ParentClassID == curItem.ClassID).ToList();
curItem.children = new List<SysYearlyPlanClassModel>();
curItem.children.AddRange(subItems);
foreach (var subItem in subItems)
{
subItem.id = subItem.ClassID;
subItem.text = subItem.ClassName;
GetChildren(allList, subItem);
}
}
#endregion