<div id="setBtn_dd" class="easyui-window" data-options="iconCls:'icon-save',buttons:'#setBtn_dlg-buttons',closed:true,modal:true,width:380,height:380">
<form id="setBtn_ff" method="post" autocomplete="off" style="margin-top: 30px">
<table class="tb1">
<tr hidden="hidden">
<td class="td1">MenuID:</td>
<td class="td2">
<input id="setBtn_MenuID" class="easyui-validatebox textbox" type="text" name="menuId" style="width: 200px; height: 30px;" /></td>
</tr>
<tr>
<td class="td1">菜单名称:</td>
<td class="td2">
<input id="setBtn_MenuName" class="easyui-validatebox textbox" type="text" name="menuName" data-options="required:'true',validType:'maxLength[100]'" style="width: 200px; height: 30px;" disabled="disabled" /></td>
</tr>
<tr>
<td class="td1">按钮:</td>
<td class="td2">
<select id="combotree_setBtn" class="easyui-combotree" name="combotree_setBtn" data-options="validType:'maxLength[100]',multiple:true" style="width: 200px; height: 30px;" /></td>
</tr>
</table> <div id="setBtn_dlg-buttons">
<a id="setBtn_ddok" href="javascript:void(0)" onclick="javascript:saveMenuBtn();" class="easyui-linkbutton" data-options="iconCls:'icon icon-ok'">保存</a>
<a id="setBtn_ddcancel" href="javascript:void(0)" onclick="javascript:$('#setBtn_dd').window('close');" class="easyui-linkbutton" data-options="iconCls:'icon icon-cancel'">取消</a>
</div>
</form>
</div>
$("#z-toolbar").on("click", "#btnSetMenuButton", function () {
var row = $('#tbMenu').datagrid('getSelected');
if (row == null) {
$.messager.alert('警告', '请选择至少一行数据', 'warning');
return;
} $.ajax({
type: 'post',
dataType: "json",
url: '/Handlers/MenuHandler.ashx?action=IsExistSon&menuId=' + encodeURI(row.menuId),  //判断是否有下级
success: function (data) {
if (data.Success) {
$('#setBtn_dd').dialog({
closed: false,
title: '分配按钮',
onBeforeOpen: function () {
//加载时选中已经分配好的按钮
$.ajax({
type: 'post',
dataType: "json",
url: '/Handlers/MenuButtonHandler.ashx?action=LoadMenuButton&menuId=' + encodeURI(row.menuId), success: function (mb_data) {
if (mb_data.Success) {
$('#combotree_setBtn').combotree('setValues', mb_data.Message);
}
}
})
}
});
            //向combotree绑定值
$('#combotree_setBtn').combotree(
{
url: "/Handlers/ButtonHandler.ashx?action=GetButtonTree"
});
$('#setBtn_ff').form('load', row);
} else {
$.messager.show({
title: '错误',
msg: data.Message
});
}
}
})
})
 private void GetButtonTree(HttpContext context)
{
string where = "1=1";
List<Model_tb_button> btnList = new BLL_Button().GetButtonTable(where); StringBuilder sbStr = new StringBuilder();
sbStr.Append("[{\"id\":0, \"text\": \"全选\", \"children\":[");
if (btnList != null && btnList.Count > )
{
foreach (var item in btnList)
{
sbStr.Append("{\"id\":" + item.btnId + ", \"text\":\"" + item.btnName + "\", \"iconCls\":\"" + item.btnIcon + "\"},");
}
sbStr.Remove(sbStr.Length - , );
}
sbStr.Append("]}]"); Response.WriteJson(context, sbStr);
}
BLL
public List<Model_tb_button> GetButtonTable(string where)
{
DataSet ds = this.dal.GetButtonTable(where);
return ModelHandler<Model_tb_button>.FillModel(ds.Tables[]);
} DLL
public DataSet GetButtonTable(string where)
{
StringBuilder sbSql = new StringBuilder();
sbSql.Append("SELECT btnId AS id, btnName AS text, btnIcon AS iconCls, * FROM dbo.tb_button ");
if (!string.IsNullOrEmpty(where))
{
sbSql.Append(" WHERE " + where);
} return DbHelperSQL.Query(sbSql.ToString());
} Model
[Serializable]
public partial class Model_tb_button
{
public Model_tb_button()
{ }
#region Model
private int _btnid;
private string _btnname;
private string _btncode;
private string _btnicon;
private DateTime? _createtime;
private string _createby;
private DateTime? _updatetime;
private string _updateby;
/// <summary>
///
/// </summary>
public int btnId
{
set { _btnid = value; }
get { return _btnid; }
}
/// <summary>
///
/// </summary>
public string btnName
{
set { _btnname = value; }
get { return _btnname; }
}
/// <summary>
///
/// </summary>
public string btnCode
{
set { _btncode = value; }
get { return _btncode; }
}
/// <summary>
///
/// </summary>
public string btnIcon
{
set { _btnicon = value; }
get { return _btnicon; }
}
/// <summary>
///
/// </summary>
public DateTime? createTime
{
set { _createtime = value; }
get { return _createtime; }
}
/// <summary>
///
/// </summary>
public string createBy
{
set { _createby = value; }
get { return _createby; }
}
/// <summary>
///
/// </summary>
public DateTime? updateTime
{
set { _updatetime = value; }
get { return _updatetime; }
}
/// <summary>
///
/// </summary>
public string updateBy
{
set { _updateby = value; }
get { return _updateby; }
}
#endregion Model }

带有“全选”的combotree的更多相关文章

  1. vue实现下拉框全选和输入匹配

    实际项目中的一个需求: 点击文本框,弹出带有复选框的选项,然后获取选中项的数据,传给后面的一个功能.在文本框输入内容,也会动态的匹配下拉列表,并且列表带有全选功能. 朴素的效果图: 我选择了用vue实 ...

  2. JQuery实现列表中复选框全选反选功能封装

    我们在做列表的时候经常会遇到全选,反选进行批量处理问题,例如: 我当时就是简单的实现了,然后想封装到公共的js中,封装的太烂,不好意思贴出来了(就是把实现代码之间放到公共js中,然后每个页面都用固定的 ...

  3. Jquery小例子:全选按钮、加事件、挂事件;parent()语法;slideToggle()语法;animate()语法;元素的淡入淡出效果:fadeIn() 、fadeOut()、fadeToggle() 、fadeTo();function(e):e包括事件源和时间数据;append() 方法

    function(e): 事件包括事件源和事件数据,事件源是指是谁触发的这个事件,谁就是事件源(div,按钮,span都可以是事件源),时间数据是指比如点击鼠标的事件中,事件数据就是指点击鼠标的左建或 ...

  4. jQuery全选与反选,且解决点击只执行一次的问题

    <html> <head> <script src="jquery-1.11.1.min.js" type="text/javascript ...

  5. jquery checkbox全选,全不选,反选方法,jquery checkbox全选只能操作一次

    jquery checkbox全选,全不选,反选方法, jquery checkbox全选只能操作一次, jquery checkbox全选只有第一次成功 >>>>>&g ...

  6. 关于js 全选 反选

    prop 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. attr  对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. $("#selectAll ...

  7. 表格中的checkbox复选框 全选非全选 公共方法 及提交选中结果

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  8. Android开发 ---基本UI组件5:监听下拉选项,动态绑定下拉选项、全选/反选,取多选按钮的值,长按事件,长按删除,适配器的使用,提示查询数据,activity控制多按钮

    效果图: 效果描述: 1.当点击 1 按钮后,进入选择城市的页面,会监听到你选中的城市名称:动态为Spinner绑定数据 2.当点击 2 按钮后,进入自动查询数据页面,只要输入首字母,就会动态查找以该 ...

  9. checkebox 全选 ,子复选框单个全部选择后,全选框也会被选择

    <script> //点击全选,子复选框被选中 function demo(){ var allcheck=document.getElementById("allcheck&q ...

随机推荐

  1. 大数据-HBase

    HBase HBase(Hadoop Database)基于Google的BigTable论文,依赖HDFS进行存储.适合存储大体量数据.HBase是高可靠性(数据安全).高性能(存取效率).面向列. ...

  2. DE1-LINUX运行

    在官网下载.img文件:网址:http://download.terasic.com/downloads/cd-rom/de1-soc/linux_BSP/ 写入DE1_SOC_SD.img文件: 打 ...

  3. python之路之线程,进程,协程2

    一.线程 1.创建线程 2.主线程是否等待子线程 t.setDaemon(Ture/False):默认是false,等待子线程完成,ture,表示不等待子线程结束 3.主线程等待,子线程执行 join ...

  4. java的jdk和jre区别

    本文是本人随便总结的== 首先大概清楚个关系:jdk 包含 jre 包含 jvm 然后来看下,当我们配置完java运行环境的时候,是不是在java默认安装文件下发现jdk和jre两个包,然后jdk包里 ...

  5. 2.7.2 元素定位:frame 内定位 driver.switch_to.frame()

    来源: http://blog.csdn.net/anniejunyan/article/details/23257327  Selenium + Webdriver 学习(五) frame下元素定位 ...

  6. bzoj3626: [LNOI2014]LCA (树链剖分)

    很神奇的方法 感觉是有生之年都想不到正解的这种 考虑对i 到根的节点权值 + 1,则从根到z的路径和就是lca(i,z)的深度 所以依次把0 ~ n - 1的点权值 + 1 对于询问[l, r] 这个 ...

  7. Codeforces Round #620 (Div. 2)E(LCA求树上两点最短距离)

    LCA求树上两点最短距离,如果a,b之间距离小于等于k并且奇偶性与k相同显然YES:或者可以从a先走到x再走到y再走到b,并且a,x之间距离加b,y之间距离+1小于等于k并且奇偶性与k相同也输出YES ...

  8. mongo shell远程连接使用数据库

    mongo mydb --username user1 --host --password --username 用户名 --host 连接ip --port 连接端口号 --password 密码 ...

  9. QT+VS中使用qDebug()打印调试信息无法显示

    首先右键点击项目名称,找到最后一项属性 然后依次设置为如图所示即可 再次编译后,会弹出CMD窗口,出现qDebug的调试信息.

  10. POJ 3991 括号匹配问题(贪心)

    I’m out of stories. For years I’ve been writing stories, some rather silly, just to make simple prob ...