关于一个无限分类的多选,单选相关的控件
最近在一个项目中需要用到无限分类的平铺多选,单选这些功能,查了一些资料,结果大都是一些用IFrame这样的东西做的,虽然用起来直观,但本人更喜欢集成控件形式的,于是抽了一些时间做了一个.思路是利用控件+JS+不同的无限分类表,支持一页多控件,支持不同的无限分类表.效果图如下:
当这些父类被选择时,子类都被选择.当这些父类取消选择时,其下所有子类都被取消选择.
代码如下:
控件behind代码CS:
html代码很简单:
接下来是相关的JS,注意,不论一个页面调用几次这个控件,此JS只加载一次
checkeds.value+=groupid+',';
}else{
checkeds.value=checkeds.value.replace(groupid+",","");
}for(vari=0;i<items.length;i++){if(items.item(i).value.indexOf(','+groupid+',')>-1){varinsertStr=items.item(i).value.substring(items.item(i).value.lastIndexOf(',')+1,items.item(i).value.length)+',';if(checkedControl.checked){
items.item(i).checked=true;if(checkeds.value.indexOf(insertStr)<0){
checkeds.value+=insertStr;
}
}else{
items.item(i).checked=false;
checkeds.value=checkeds.value.replace(insertStr,"");
}
}
}
}
因为是基于.net 3.5的Linq做的控件,所以,此控件必须运行在装有3.5类库的机器上,而且,因为无限分类的数据库结构大家都清楚.是这样的:
稍微解释一下各字段含义:
GroupId:这是分类的主ID,自动增加,主键.
GroupName:这是分类的名字.
ParentId:这是父类的ID,
ParentStr:这是从根类--->父类---->父类....--->本类的父类的路径,以0开始,以,结束,例如0,2,10,22,这从算法上讲叫静态冗余字段,用来快速查找某个类的所有子类.例如要查找GroupId为2的所有子类,可以这样写语句:select top xx * from 表名 where ParentStr like '%,2,%',是不是比一般的遍历要快很多?
Route:这是指示该类的路径深度,如果是根类,则为1,如果是1级子类,则为2,依此类推,此字段主要用于快速查找某一级别的所有子类.
至于这个无限分类的维护,大家可以各显其能去优化.目前我的维护是采用缓存+List<>+ORM
我写的东西大都是日常工作中用得比较多的,而且,相对来说,我会比较偷懒,例如,减少计算,减少数据库访问等.而且,本人不喜欢一个大括号里有很多条语句的代码方式.这样的代码比较难维护.如果我看到一个if或者while后接了一个大括号,然后整屏都看不到它的结束符.我会BS这段代码的作者.
f人要
转载于:https://www.cnblogs.com/CoreCaiNiao/archive/2009/12/01/1614665.html
关于一个无限分类的多选,单选相关的控件相关推荐
- 一个类似抖音 APP 拍摄按钮效果的控件
TouchButton 一个类似抖音 APP 拍摄按钮效果的控件 效果图预览 用法 <net.angrycode.library.TouchButtonandroid:id="@+id ...
- easyui数据表格显示复选框_WinCC 报警控件、在线趋势/表格控件数据查询
1.报警控件数据查询 在WinCC报警记录组态时,我们可以给报警消息定义不同的类别.类型.用户文本块等(图1),有了以上的组态,我们就可以自定义过滤条件,在报警控件中查询或显示分类的报警信息. 图 1 ...
- 2019数据安装勾选_如何安装勾选认证平台安全控件,以及如何勾选认证发票
我们继续来关注增值税发票勾选平台的常见问题! 很多客户留言说勾选认证控件不会安装? 不知道怎么勾选认证发票? 不知道勾选认证平台的域名网址? 不知道发票勾选是否认证成功? 好的,以上这些常见问题我们来 ...
- (转)一个带自定义分页,排序功能的DATAGRID控件(公开源码)
因为项目需要,要弄个有这样功能的控件.要有自定意分页和排序的功能.在这个控件里面数据的绑定都是用DataView来实现,DataView放在Session里,如果大家有更灵活的方法可以留言给我.S ...
- android 多个复选框,Android UI控件之CheckBox(复选框、多选框)
上一篇文章中学习了RadioButton.知道了RadionButton的基本用法,实现起来也是听简单的 和RadioButton一样CheckBox也是一个使用的非常多的控件,Android中它的的 ...
- matlab figure函数_如何在Matlab中使用GUI做一个简易音乐播放器? ---- (六)控件间的数据传递...
我纠结了两个星期是否要写这一章-最后决定还是要写一章收尾,来解释其中的控件间的数据传递问题. 在前五篇中,如果有童鞋跟上了我的思路或者做完了这样一个gui,会发现还有一个一直避开的遗留问题,就是将歌曲 ...
- 推荐一个超人气的类似MSN弹出的控件
推荐一个非常好的类似MSN的控件,使用效果如下: 在线演示 http://www.eeeksoft.net/files/popuptest 源文地址请参考: http://www.codeprojec ...
- qt 定义一个长度的数组_Qt设计器:创建控件数组
也许这是一个愚蠢的问题,但我是新来的C + +和Qt.抱歉给您带来不便.Qt设计器:创建控件数组 在Qt Designer中,我创建多个标签(例如): my_label1 my_label2 my_l ...
- 肝一个嵌入式日历吧!LVGL『Calendar日历控件』介绍
一. LVGL GUI日历控件的概念 LVGL做的日历空间还是比较好看的,而且需要我们做的事情很少,LVGL的日历控件有以下功能 突出显示当天 突出显示任何用户定义的日期 显示日期名称 单击按钮进入下 ...
最新文章
- 关于springboot vue前后端分离项目部署到阿里云轻量服务器(前后端分开部署)
- Java:使用synchronized和Lock对象获取对象锁
- java web三:反射
- “直播第一股”映客,讲得好社交新故事吗?
- vue-devtools chrome 开发工具
- DOM-4 【utils/待讲评】节点创建删除、元素属性设置获取、节点属性
- java导出excel_java按需导出Excel并自动合同单元格
- 2021年中国宠物玩具与训练市场趋势报告、技术动态创新及2027年市场预测
- 晕晕沉沉的一天,ISAPI_Rewrite 2.9破解版竟然是假的
- 漏洞扫描工具Nessus的下载与安装教程
- 三代悦虎1562A来袭!相比其他方案到底怎样?
- C语言基础之汉语拼音读数字
- Android开发之视频播放器
- GoLang官网怎么查看“包“文档
- 生动形象解释虚数的意义
- 5G毫米波Vs毫米波通信模块
- 计算机组成原理概念学习DAY7——外围设备
- 浙江大学计算机博士申请考核,考博经验 | 2020年浙江大学博士申请考核经验分享...
- NTP服务端和客户端的部署——Chrony
- 湖南财务大数据比赛代码2018-12-20
热门文章
- python pandas常用函数_Python pandas常用函数详解
- linux 查询wwid命令,linux肿么查看硬盘的wwid
- 对象特性--构造函数调用规则
- MySQL面试题 | 附答案解析(一)
- zoj-3228 Searching the String AC自动机
- win10 error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突
- 属性匹配工具_测试工具链——高效构建Mock服务
- PDAL点云处理库介绍
- keras中conv2d,conv2dTranspose的Padding详细介绍
- Ubuntu 14.04 64bit安装IPython