定义:

<input id="treeFFatherId" name="treeFFatherId" value="" style="width:320px;">
@*<input class="easyui-combotree" id="treeFFatherId" name="treeFFatherId"*@
@*data-options="url: '/Mes/PmcBillofMaterial/GetBomTree?id=1304',lines:true" style="width:170px;height:22px;" />*@
<img style="cursor: pointer; vertical-align: middle;" onclick="$('#treeFFatherId').combotree('clear');"
alt="清空父节点" title="清空父节点" src="~/Content/themes/icon/edit-clear.png" />

打开新增界面时,初始化控件栏

            onLoad: function () {
//节点树选择
$('#treeFFatherId').combotree({
url: '/Mes/PmcBillofMaterial/GetBomTree?id=' + row[0].Id,
required: false
});
},

后台JSON格式:

public ActionResult GetBomTree(string id)
{
int TopId = string.IsNullOrEmpty(id) == true ? : Convert.ToInt32(id); List<vPmcBillofMaterial> list = _vPmcBillofMaterialService.Find(t => t.TopId == TopId).ToList(); System.Text.StringBuilder str = new System.Text.StringBuilder();
if (list.Count > )
{
DataTable dt = DatabaseConvert.ListToDataTable<vPmcBillofMaterial>(list);
if (dt != null)
{
str.Append(Recursion(dt, ));
str = str.Remove(str.Length - , );
}
}
return Content(str.ToString());
}
///递归:
private string Recursion(DataTable dt, object parentId)
{
System.Text.StringBuilder sbJson = new System.Text.StringBuilder();
DataRow[] rows = dt.Select("FatherId = " + parentId);
if (rows.Length > )
{
sbJson.Append("[");
for (int i = ; i < rows.Length; i++)
{
string childString = Recursion(dt, rows[i]["Id"]);
if (!string.IsNullOrEmpty(childString))
{
//comboTree必须设置【id】和【text】,一个是id一个是显示值
sbJson.Append("{\"id\":\"" + rows[i]["Id"].ToString() + "\",\"ParentId\":\"" + rows[i]["FatherId"].ToString() + "\",\"MaterialId\":\"" + rows[i]["MaterialId"].ToString() + "\",\"UpdateBy\":\"" + rows[i]["UpdateBy"].ToString() + "\",\"UpdateTime\":\"" + rows[i]["UpdateTime"].ToString() + "\",\"text\":\"" + rows[i]["ChildK3MaterialNumber"].ToString() + "(" + rows[i]["ChildMaterialName"].ToString() + ")" + "\",\"children\":");
sbJson.Append(childString);
}
else
sbJson.Append("{\"id\":\"" + rows[i]["Id"].ToString() + "\",\"ParentId\":\"" + rows[i]["FatherId"].ToString() + "\",\"MaterialId\":\"" + rows[i]["MaterialId"].ToString() + "\",\"UpdateBy\":\"" + rows[i]["UpdateBy"].ToString() + "\",\"UpdateTime\":\"" + rows[i]["UpdateTime"].ToString() + "\",\"text\":\"" + rows[i]["ChildK3MaterialNumber"].ToString() + "(" + rows[i]["ChildMaterialName"].ToString() + ")" + "\"},");
}
sbJson.Remove(sbJson.Length - , );
sbJson.Append("]},");
}
return sbJson.ToString();
}

完整dialog

function AddBomNode()
{
var row = $("#ui_grid1").datagrid("getChecked");
if (row.length < 1) {
$.show_alert("提示", "请先勾选要添加节点的物料主文件");
return;
}
if (row.length > 1) {
$.show_alert("提示", "不允许批量添加节点");
$("#ui_grid1").datagrid('clearSelections').datagrid('clearChecked');
return;
}
$("<div/>").dialog({
id: "ui_PmcBillofMaterial_bom_add_dialog",
href: "/Mes/PmcBillofMaterial/BomNodeAdd",
title: "新建",
height: 300,
width: 600,
modal: true,
buttons: [{
id: "ui_PmcBillofMaterial_bom_add_btn",
text: '保 存',
iconCls: 'icon-save',
handler: function () {
$("#BomNodeAddForm").form("submit", {
url: "/Mes/PmcBillofMaterial/AddBomNode",
onSubmit: function (param) {
//注:加个F标记,防冲突
//param.FId = $("#hidid").val();
var parentid = $("#treeFFatherId").combotree("getValues").toString();
param.FFatherId = parentid;
param.FTopId = row[0].Id; //物料ID
param.FMaterialId = $("#hidFMaterialId").val(); //物料ID
param.FBomQty = $("#txtFBomQty").val();
param.FLossRate = $("#txtFLossRate").val();
param.FBomState = $("#selFBomState").val();
param.FBomInfoState = $("#txtFBomInfoState").val();
//param.FWorkshop = $("#txtFWorkshop").val();
//param.FWarehouse = $("#txtFWarehouse").val(); param.FRemark = $("#txtFRemark").val();
//param.FIsEnabled = document.getElementById("rbFIsEnabled").checked; if ($(this).form('validate')) {
$('#ui_PmcBillofMaterial_bom_add_btn').linkbutton('disable');
return true;
}
else {
$('#ui_PmcBillofMaterial_bom_add_btn').linkbutton('enable'); //恢复按钮
return false;
}
},
success: function (data) {
var dataJson = eval('(' + data + ')');
if (dataJson.success) {
$("#ui_PmcBillofMaterial_bom_add_dialog").dialog('destroy');
$.show_alert("提示", dataJson.msg);
$("#ui_grid2").datagrid("reload").datagrid('clearSelections').datagrid('clearChecked');
$("#ui_grid3").datagrid("reload").datagrid('clearSelections').datagrid('clearChecked');
} else {
$('#ui_PmcBillofMaterial_bom_add_btn').linkbutton('enable');
$.show_alert("提示", dataJson.msg);
}
//$("#bomTree").tree('reload', parentId.target);
$("#bomTree").tree('reload');
}
});
}
}, {
text: '取 消',
iconCls: 'icon-cancel',
handler: function () {
$("#ui_PmcBillofMaterial_bom_add_dialog").dialog('destroy');
}
}],
//打开新增界面时,初始化控件栏
onLoad: function () {
//$("#hidid").val(row[0].Id);
//如果节点为空,则默认物料ID为当前物料主文件选中行;
var roots = $('#bomTree').tree('getRoots');
if (roots.length <= 0) {
var strMaterial = row[0].K3MaterialNumber + '(' + row[0].MaterialName + ')';
$('#hidFMaterialId').val(row[0].Id);
$('#txtFMaterialId').val(strMaterial);
$('#txtFMaterialId').focus();
} else { $('#txtFBomQty').focus(); } //节点树选择
$('#treeFFatherId').combotree({
url: '/Mes/PmcBillofMaterial/GetBomTree?id=' + row[0].Id,
required: false
});
},
onClose: function () {
$("#ui_PmcBillofMaterial_bom_add_dialog").dialog('destroy'); //销毁dialog对象
}
});
}

easyUI 节点树选择的更多相关文章

  1. 基于EasyUi ComBotree树修改 父节点选择问题

    本人在使用 Easy UI 期间发现了一个不太适合项目的bug,可能也不算bug把 . 毕竟不同项目背景 取舍不同. 我在做网元树选择的时候  发现当选取父节点后,子节点都会被选择  返回  .但是如 ...

  2. easyui 获取树的平级根节点的父节点&选择性展示树的一个根节点

    1.easyui的树的根节点一般是几个平级的,怎样获取这些父节点的id? 可以将获取到的平级根节点放在一个数组中 var roots=[]; roots=$("#tree1").t ...

  3. Jquery EasyUI Combotree只能选择叶子节点且叶子节点有多选框

    Jquery EasyUI Combotree只能选择叶子节点且叶子节点有多选框 Jquery EasyUI Combotree单选框,Jquery EasyUI Combotree只能选择叶子节点 ...

  4. 基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

    最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...

  5. 使用EasyUI的树控件构建Web界面

    最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...

  6. 数据网格和树-EasyUI Datagrid 数据网格、EasyUI Propertygrid 属性网格、EasyUI Tree 树、EasyUI Treegrid 树形网格

    EasyUI Datagrid 数据网格 扩展自 $.fn.panel.defaults.通过 $.fn.datagrid.defaults 重写默认的 defaults. 数据网格(datagrid ...

  7. (转)基于MVC4+EasyUI的Web开发框架经验总结(2)- 使用EasyUI的树控件构建Web界面

    http://www.cnblogs.com/wuhuacong/p/3669575.html 最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开 ...

  8. VUE实现Studio管理后台(七):树形结构,文件树,节点树共用一套代码NodeTree

    本次介绍的内容,稍稍复杂了一点,用VUE实现树形结构.目前这个属性结构还没有编辑功能,仅仅是展示.明天再开一篇文章,介绍如何增加编辑功能,标题都想好了.先看今天的展示效果: 构建树必须用到递归,使用s ...

  9. cocos2dx3.4 导出节点树到XML文件

    l利用cocostudio做UI和场景时,经常要去获取某个节点,cocostudio2.1开始加入了文件的概念,可以创建场景,节点,层等文件,把公用的东西创建到文件里,然后把这个文件拖到场景里使用,达 ...

随机推荐

  1. mysql不支持emoji表情的问题的解决方法

    最近财神圈项目集成微信登录功能的过程中,当保存用户有昵称含有表情符号时后台服务抛出异常,原来是数据库默认字符集不支持emoji表情字符.找到问题的原因后,因为之前也没有遇到过这样的问题,也没思路,迅速 ...

  2. Ubuntu wubi.exe 安装到Windows 正在下载ubuntu-11.04-desktop-i386.iso

    下载一个Ubuntu的iso镜像,用虚拟光驱加载后,点击 wubi.exe->安装到Windows 设置好后,进入安装,又自动开始下载iso镜像了,提示:正在下载ubuntu-11.04-des ...

  3. tomcat使用不同的jdk版本 liunx 装两个jdk

    原作者文章 https://blog.csdn.net/qq_34626097/article/details/83385219 看了原作者学会的!上面链接 因为公司的服务器里面是jdk1.7和tom ...

  4. DP小题集

    P2736 "破锣摇滚"乐队 Raucous Rockers 你刚刚继承了流行的"破锣摇滚"乐队录制的尚未发表的N(1 <= N <= 20)首歌的 ...

  5. git学习--clone和pull

    clone:从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库.(clone是将一个库复制到你的本地,是一个本地从无到有的过程) pull:从远程服务器获取到一个branch分支的更新到本 ...

  6. git学习中遇到的疑难杂症

    GIT仓库如何恢复到前一次提交 一.通过使用Git版本恢复命令reset,可以回退版本 reset命令有3种方式: 1.git   reset   –mixed:此为默认方式,不带任何参数的git r ...

  7. 杭电ACM hdu 1398 Square Coins

    Problem Description People in Silverland use square coins. Not only they have square shapes but also ...

  8. 关于Django中路由层(URL-conf)

    关于路由层 路由层其实就是项目中urls.py那个文件,那里面存放着url和视图函数的对应关系它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来 ...

  9. Go语言基础之13--线程安全及互斥锁和读写锁

    一.线程安全介绍 1.1 现实例子 A. 多个goroutine同时操作一个资源,这个资源又叫临界区 B. 现实生活中的十字路口,通过红路灯实现线程安全 C. 火车上的厕所(进去之后先加锁,在上厕所, ...

  10. java spi机制和场景

    JDK中查找服务的实现的工具类是:java.util.ServiceLoader, jvm启动时自动查找META-INF/services/下面的实现类,并初始化实例 jdbc的mysql实现类 在静 ...