<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. python3爬取高清壁纸(2)

    上次只是爬取一个专辑的图片,这次要爬取一整个页面的所有专辑的图片. 在上次的代码的基础上进行修改就行了,从专辑的索引页面开始,爬取该页面上所有的专辑的链接,再套用上次的代码就行了. 若要爬取多个页面只 ...

  2. [CERC2014] Outer space invaders

    题目链接 题意 你受到一群外星人的攻击,第 $i$ 个外星人会在 $ai$ 时间出现,与你的距离为 $di$,且必须在 $bi$ 时间前消灭.你有一个区域冲击波器,每次攻击可以设定一个功率 $R$,这 ...

  3. Pacemaker+ISCSI实现Apache高可用-配置

    一.配置文件系统 任意节点用ISCSI的共享磁盘创建LVM node1 pvcreate /dev/sdb vgcreate my_vg /dev/sdb lvcreate -L 1G -n web_ ...

  4. AJAX-状态属性

    XMLHttpRequest对象的readyState属性 作用:表示xhr对象的请求状态 值:由0到4表示5个状态 0:请求尚未初始化 1:已经打开到WEB服务器的连接,正在向服务器发送请求 2:请 ...

  5. java基础(十)之向上转型/向下转型

    向上转型:将子类的对象赋值给父类的引用. 向下转型:将父类的对象赋值给子类的引用. 向上转型 Student a = new Student(); Person zhang = a; 或者 Perso ...

  6. [控制台尊享] MinGW下使用 gotoxy函数

    相信用过Turbo C的童鞋都知道gotoxy这个函数吧,但由于某些原因,windows下的mingw没有直接提供这个函数. 那么gotoxy究竟是干什么的呢?假设你的程序是基于控制台的(就是一个黑窗 ...

  7. eureka服务只能设置8761,不然服务无法注册

    原因是,eureka服务端和eureka的客户端在一个project下,只是属于不同的模块.所以出现了以上问题.分开项目就好了.

  8. Flask 教程 第十五章:优化应用结构

    本文翻译自The Flask Mega-Tutorial Part XV: A Better Application Structure 这是Flask Mega-Tutorial系列的第十五部分,我 ...

  9. JS生成简单随机答案选择器,小抽奖器

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. 染色板QPlette

    QPalette::Window 背景颜色 QPalette::WindowText 文本颜色 QPalette::Background 同QPalette::Window QPalette::For ...