MiniUI增删改查操作及确认按钮
原文:https://blog.csdn.net/codezdx/article/details/81565043
1、动态创建列:尽量不要直接在html文件里创建列,动态设置在js文件里方面添加、修改等。
首先把列定义在变量中,例:
var items=[
{field:"id",width:"30",header:"id"},
{field:"id",width:"30",header:"id"},
...
]
grid.set({
style:"width:800px;"... ,
columns:items
})
2、将本地数据传入表格:setData函数,将自己模拟的数据传入表格(哈哈,编名字的的技术还不错吧)
var arr=[
{id:1,name:"王力坤",gender:1,age:28},
{id:2,name:"周大宝",gender:1,age:19},
{id:3,name:"李小明",gender:0,age:21},
....
];
grid.setData(arr);
3、性别渲染器:存放的数据中,性别一般用1 ,0 来代替 男 、女。这时需要在性别行添加 renderer:"onGenderRenderer",然后定义函数onGenderRenderer :
var Genders = [{ id: 1, text: '男' }, { id: 0, text: '女'}];
function onGenderRenderer(e) {
for (var i = 0, l = Genders.length; i < l; i++) {
var g = Genders[i];
if (g.id == e.value) return g.text;
}
return "";
};
4、用drawcell渲染:age<23的数据行为红色:
.red{
color:red;
}
grid.on("drawcell",function(e){
var record=e.record;
if(record.age<23){
e.rowStyle="color:red" ;
}
});
这里的red为外部定义的样式。
其实我起初想到的另一种方法,就是用mini的findrows方法找到age<23的行,然后用addRowCls给每个符合的行增加样式。但是后来发现一个问题,就是改动别的地方时也要重新写一遍,造成代码重复,所以还是上面的方法比较好。
5、 confirm和mini.confirm:选择删除行数据的时候,会弹出警告框确认是否要删除,有”确定“和”取消“两个按钮。
坑:confirm的时候,点击“确定”按钮会删除;而到了mini.confirm的时候,不管点击哪个按钮都会删除,踩了半天的坑才发现,原来mini.confirm跟alert的功能是一样的,这是一个弹出的警告框。我们要想让它实现confirm的功能,必须把要执行的函数放在它的回调函数中,附上代码:
(1)confirm警告框:
if(confirm("确定删除记录?")){
if(action=="ok"){
grid.removeRows(rows);
}
}else{
mini.alert("请选中一条记录");
}
(2)mini.confirm警告框:
mini.confirm("确定删除记录?","警告",function(action){//confirm返回Boolean,mini.confirm()返回警告框,必须加回调函数
if(action=="ok"){
grid.removeRows(rows);
}
})
}else{
mini.alert("请选中一条记录");
}
6、chrome浏览器下 CloseOwnerWindow 问题:添加完数据的时候,chrome下点击按钮没反应,火狐和ie却可以,这是因为必须把项目部署在服务器上,CloseOwnerWindow函数才能正常执行。
这里附上一个解决办法:解决如何把项目放到服务器运行的问题
7、父页面获取子页面控件值得问题: 子页面用mini表单自带的方法form.getData()获取控件值,父页面在open函数的ondestroy中可以获取到值却显示不出来,这可能有好几个问题:
(1)lz因为比较粗心,function忘记传参,相当于没有判断条件,自然就错掉了,所以大家在找bug的时候一定要仔细看代码的细节。lz当时是这样写的,不堪回首啊~~ 子页面传了action=”ok“父页面却没有写参数.....
ondestroy: function (此处是空的...) {
if(action=="ok"){
var iframe = this.getIFrameEl();
var add_data = iframe.contentWindow.GetData();
...
}
}
而子页面:
function closeWindow(action) {
if (window.CloseOwnerWindow)
return window.CloseOwnerWindow(action);
else
window.close();
}
function onOk() {
closeWindow("ok");//这里传了个action="ok"
}
(2)可能还有一种情况,就是当你把新获取到的数据添加到数组的时候,没有重新setData。要记得setData两次哦,第一次是定义完列的时候传进初始数据,第二次是把新数组的值传进去。
ondestroy: function (action) {
if(action=="ok"){
var iframe = this.getIFrameEl();
var add_data = iframe.contentWindow.GetData();
$.extend(true,add_data,add_data);//add_data=mini.clone(add_data);
arr.push(add_data);
//这里要注意,一定要再传一次更新后的数组
grid.setData(arr);
}
}
})
8、mini.clone:mini在获取到数据一定要克隆数据mini.clone才可以使用,这里用jQuery的深拷贝也可以实现。
大家可以自己试一下哦 : js的几种拷贝方法
9、控件只读:子页面id不可编辑,只需要把控制设置为只读就可以了哦。
function SetData(data){
var fields = form.getFields(); //获取控件
var c=fields[0]; //id的控件
if(data.action="edit"){
data=$.extend(true,data,data);
if(c.setReadOnly){ //设置控件只读
c.setReadOnly(true);
}
form.setData(data.edit_item);
}
}
10、电话号码校验:在控件中validation属性校验
<input id="phoneNumber" name="phoneNumber" class="mini-textbox" onvalidation="onIsPhonenumberAllow" required="true"/>
function onIsPhonenumberAllow(e) {
var reg= /^1[34578]\d{9}$/;
if (e.isValid) {
if (reg.test(e.value) == false) {
e.errorText = "请输入正确的手机号码!";
e.isValid = false;
}
}
}
MiniUI增删改查操作及确认按钮的更多相关文章
- mongoVUE的增删改查操作使用说明
mongoVUE的增删改查操作使用说明 一. 查询 1. 精确查询 1)右键点击集合名,再左键点击Find 或者直接点击工具栏上的Find 2)查询界面,包括四个区域 {Find}区,查询条件格式{& ...
- 浅谈dataGridView使用,以及画面布局使用属性,对datagridview进行增删改查操作,以及委托使用技巧
通过几天的努力后,对datagridview使用作一些简要的介绍,该实例主要运用与通过对datagridview操作.对数据进行增删改查操作时,进行逻辑判断执行相关操作.简单的使用委托功能,实 ...
- 详谈easyui datagrid增删改查操作
转自:http://blog.csdn.net/abauch_d/article/details/7734395 前几天我把easyui dadtagrid的增删改查的实现代码贴了出来,发现访问量达到 ...
- 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作
专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...
- C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。
1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...
- (转)SQLite数据库增删改查操作
原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...
- PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码
PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...
- 05_Elasticsearch 单模式下API的增删改查操作
05_Elasticsearch 单模式下API的增删改查操作 安装marvel 插件: zjtest7-redis:/usr/local/elasticsearch-2.3.4# bin/plugi ...
- JDBC连接数据库及增删改查操作
什么是JDBC?Java语言访问数据库的一种规范,是一套APIJDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类 ...
随机推荐
- 传统Dolev-Yao攻击模型和eCK强安全模型之间的辨析
1.DY模型是基于安全协议的分层次的思想,先考虑安全协议本身的行为逻辑是否存在缺陷,之后再考虑实现方法是否存在问题. 而在一般的协议分析中我 们在安全协议验证中我们假定攻击者不具备攻破密码算法的能力, ...
- Windows通过SSH远程登录Linux主机
准备工作:1.Windows系统下装有VMware虚拟机且是Linux系统2.终端连接工具Xshell 63.本次实验系统IP如下 系统 IP Windows10 192.168.37.111 Cen ...
- Jenkins 插件:Job Configuration History(记录job的历史更新记录)
1. 添加插件 添加完成后,Jenkins,左下,多一个菜单栏 .可以查看,job的更新记录,见下图 . 如上,End再也不用担心,有同学乱改Job ,却不知道哪里被改的情况了. 注:1)这个 ...
- Flask-session,WTForms,POOL,Websocket通讯原理 -握手,加密解密过程
1.Flask-session Flask中的session 需要执行 session_interface - open_session存储到redis中,存的key:session:d3f07db2 ...
- UWB DWM1000 开源项目框架 之 温度采集
在之前博文开源一套uwb 框架,后面几篇博文会基于这个开源框架进行简单开发. 让uwb使用者更清楚了解基于这个basecode 开发工作. 这里所做内容是,采集dwm1000 温度,并发送到另一个节点 ...
- Python 的内置字符串方法(收藏专用)
Python 的内置字符串方法(收藏专用) method 字符串 string python3.x python 4.7k 次阅读 · 读完需要 44 分钟 5 字符串处理是非常常用的技能,但 ...
- 洛谷 AT2434 JOI 公園 (JOI Park) 题解
人生第一次AC黑题,我太感动了. 每日一题 day31 打卡 Analysis 先跑遍DJ,求出1到 i的最短路.得到每个点到 1号点的距离后,从小到大排序一遍,这时便可以枚举每个点到 1号点的距离修 ...
- byte[] 转 2进制字符串
/byte[]转为二进制字符串表示byte[] bytesTest =new byte[]{16,18,33}; string strResult=string.Empty;string strTem ...
- 015_Python3 迭代器与生成器
迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退 ...
- Python学习之--列表
一.列表表示: 用方括号([] )来表示列表,并用逗号来分隔其中的元素,索引从0开始,如下 二.修改元素 三.添加元素: 1. append 2. insert 四. 删除元素: 1. del 2. ...