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控件
//选择[模块]刷新[菜单]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控件
public ActionResult GetModuleMenuJson(int ModuleID)
{
string json = ModuleMenuService.GetModuleMenuJson(ModuleID);
return Content(json);
}
easyui-combotree传递参数到后台获取json值来绑定combotree控件
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控件