带有“全选”的combotree
<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的更多相关文章
- vue实现下拉框全选和输入匹配
实际项目中的一个需求: 点击文本框,弹出带有复选框的选项,然后获取选中项的数据,传给后面的一个功能.在文本框输入内容,也会动态的匹配下拉列表,并且列表带有全选功能. 朴素的效果图: 我选择了用vue实 ...
- JQuery实现列表中复选框全选反选功能封装
我们在做列表的时候经常会遇到全选,反选进行批量处理问题,例如: 我当时就是简单的实现了,然后想封装到公共的js中,封装的太烂,不好意思贴出来了(就是把实现代码之间放到公共js中,然后每个页面都用固定的 ...
- Jquery小例子:全选按钮、加事件、挂事件;parent()语法;slideToggle()语法;animate()语法;元素的淡入淡出效果:fadeIn() 、fadeOut()、fadeToggle() 、fadeTo();function(e):e包括事件源和时间数据;append() 方法
function(e): 事件包括事件源和事件数据,事件源是指是谁触发的这个事件,谁就是事件源(div,按钮,span都可以是事件源),时间数据是指比如点击鼠标的事件中,事件数据就是指点击鼠标的左建或 ...
- jQuery全选与反选,且解决点击只执行一次的问题
<html> <head> <script src="jquery-1.11.1.min.js" type="text/javascript ...
- jquery checkbox全选,全不选,反选方法,jquery checkbox全选只能操作一次
jquery checkbox全选,全不选,反选方法, jquery checkbox全选只能操作一次, jquery checkbox全选只有第一次成功 >>>>>&g ...
- 关于js 全选 反选
prop 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法. attr 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. $("#selectAll ...
- 表格中的checkbox复选框 全选非全选 公共方法 及提交选中结果
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Android开发 ---基本UI组件5:监听下拉选项,动态绑定下拉选项、全选/反选,取多选按钮的值,长按事件,长按删除,适配器的使用,提示查询数据,activity控制多按钮
效果图: 效果描述: 1.当点击 1 按钮后,进入选择城市的页面,会监听到你选中的城市名称:动态为Spinner绑定数据 2.当点击 2 按钮后,进入自动查询数据页面,只要输入首字母,就会动态查找以该 ...
- checkebox 全选 ,子复选框单个全部选择后,全选框也会被选择
<script> //点击全选,子复选框被选中 function demo(){ var allcheck=document.getElementById("allcheck&q ...
随机推荐
- 大数据-es(elasticsearch)
elasticsearch elasticsearch是lucene作为核心的实时分布式检索,底层使用倒排索引实现. 倒排索引原理 索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址.由于不 ...
- scw——03错误,swagger开启错误
错误: 代码: @Value("${swagger2.enable:false}") private boolean enable = false; 原因:没有开启swagger的 ...
- DisplayNameFor()方法的工作原理
DisplayNameFor()方法的工作原理原创Peter Yelnav 最后发布于2018-11-23 11:09:51 阅读数 1308 收藏展开最近研究了一下ASP.NET MVC,困惑于视图 ...
- 【音乐欣赏】《Abnormalize》 - 凛として時雨
曲名:Abnormalize 作者:凛として時雨 [00:00.96]誰にも見せられないもの [00:06.44]頭の中溢れて [00:11.96]間違いさえも無い世界へ [00:17.16]迷い込ん ...
- zk zkCli shell命令
查看zk 注册服务:在zk bin 下执行 sh zkCli.sh 计入客户端shell命令行 查看zk注册服务:ls / 或者递归查看 ls -s / 列出的为注册服务. 查询服务 ...
- RegExp-named captured groups(命名分组捕获)
console.log('2020-01-23'.match(/(\d{4})-(\d{2})-(\d{2})/)) const t = '2020-01-23'.match(/(?<year& ...
- python学习之 logging包
1,logging包 python的一个包,专门用来写日志的. 官方一共划分了6个等级的log类型,分别对应重要性等级50,40,30,20,10,0: 级别排序:CRITICAL > ERRO ...
- springboot08(springmvc自动配置原理)
MVC WebMvcAutoConfiguration.java @ConditionalOnMissingBean(name = "viewResolver", value = ...
- 关于Sublime如何配置C++环境的问题
前言 传说sublime是全球最好的编辑器,可是只是编辑器啊!!!如果要运行,对于我们这些蒟蒻来说,不得不去使用DEV_C++.我们总是幻想能让sublime变成一个轻量级IDE,那该多好啊!!! 那 ...
- 计算几何-点与多边形的位置判断-zoj1081Points Within
This article is made by Jason-Cow.Welcome to reprint.But please post the writer's address. http://ww ...