您的位置:首页 > 产品设计 > UI/UE

easyui-combotree传递参数到后台获取json值来绑定combotree控件

2017-07-28 16:02 337 查看
easyui-combotree传递参数到后台获取json值来绑定combotree控件

html:

<div class="add_box add_typename">
<span class="id_name"><i>*</i>模块</span>
<select class="easyui-combobox" id="cmbModule_add_mm" data-options="required: true," style=" width:150px;">
@if (ViewBag.Modules != null)
{
foreach (var Module in ViewBag.Modules)
{
<option value="@Module.ModuleID">@Module.ModuleName</option>
}
}
</select>
</div>
<div class="add_box add_typename">
<span class="id_name"><i>*</i>菜单</span>
<input class="easyui-combotree" id="cmbMenu_add_mm" style="width: 150px;" />
</div>

easyui-combotree传递参数到后台获取json值来绑定combotree控件

jQuery:
//选择[模块]刷新[菜单]combotree
$(function () {
$("#cmbModule_add_mm").combobox({
onChange: function (n, o) {
var ModuleID = n;
$("#cmbMenu_add_mm").combobox("clear");
$('#cmbMenu_add_mm').combotree({
url: '/Rights/ModuleMenu/GetModuleMenuJson',//ajax
queryParams: { ModuleID: ModuleID },//传递参数后台
valueField: 'id',
textField: 'text',
method: 'get',
});
}
});
});

easyui-combotree传递参数到后台获取json值来绑定combotree控件

MVC:
public ActionResult GetModuleMenuJson(int ModuleID)
{
string json = ModuleMenuService.GetModuleMenuJson(ModuleID);
return Content(json);
}

easyui-combotree传递参数到后台获取json值来绑定combotree控件

Json:
public string GetModuleMenuJson(int ModuleID)
{
var moduleList = GetModule(ModuleID);
if (moduleList != null && moduleList.Any())
{
string jsonData = "[";
moduleList.ForEach(mo =>
{
jsonData += "{";
jsonData += "\"text\":\"" + mo.ModuleName + "\",";
jsonData += "\"children\":[";
var menuList = GetMenu(mo.ModuleID);
menuList.Where(me => me.ModuleID == mo.ModuleID).ToList().ForEach(menu =>
{
jsonData += "{";
jsonData += "\"id\":\"" + menu.MenuID + "\",";
jsonData += "\"text\":\"" + menu.MenuName + "\"";
jsonData += "}";
jsonData += ',';
});
jsonData = jsonData.TrimEnd(',');
jsonData += "]}";
jsonData += ',';
});
jsonData = jsonData.Substring(0, jsonData.Length - 1);//去掉末尾的 , 逗号
jsonData += "]";

return jsonData;
}
return string.Empty;
}
private List<ModuleMenu> GetModule(int ModuleID)
{
string sql = @" SELECT DISTINCT [ModuleID],
(select TOP 1 ModuleName FROM T_Module WHERE ModuleID=a.ModuleID) [ModuleName]
FROM [T_ModuleMenu] a
WHERE [IsValid]=1";
if (ModuleID != 0)
sql += "    AND ModuleID=" + ModuleID;
sql += "        ORDER by [ModuleID] ASC";

DataTable dt = DbHelperSQL.QueryDataTable(sql);
if (dt == null) return null;

return dt.AsEnumerable().Select(n => new ModuleMenu
{
ModuleID = n.Field<int>("ModuleID"),
ModuleName = n.Field<string>("ModuleName"),
}).ToList();
}
easyui-combotree传递参数到后台获取json值来绑定combotree控件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐