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语言中的接口和类 ...
随机推荐
- c# Group类
- visual studio 应用场景
- Qt错误: 程序数据库管理器不匹配 请检查安装
错误提示: C1902: 程序数据库管理器不匹配:请检查安装解决 解决方法: 到D:\VisualStudio2015\VC\bin目录下面拷贝mspdbsrv.exe.mspdb140.dll.ms ...
- 版本管理工具:GIT
ps:项目以前一直用的svn,现在自己写代码,需要进行版本控制,学习git. 入门:推荐廖雪峰老师的git入门教程. github 上的这个项目收录了很多git教程:很全面
- 解决jdbc向数据库存入数据出现乱码的情况
解决办法 1.修改项目的编码,建议统一使用utf-8来实现,这样整个项目就是utf-8. 2.jdbc:mysql://locathost:3306/数据库名称?useUnicode=true& ...
- 浅析 pagehelper 分页
之前项目一直使用的是普元框架,最近公司项目搭建了新框架,主要是由公司的大佬搭建的,以springboot为基础.为了多学习点东西,我也模仿他搭了一套自己的框架,但是在完成分页功能的时候,确遇到了问题. ...
- java 反射获取字段为List类型中的泛型类型
在java编程时,经常会使用反射去处理对象,有时会需要知道List的泛型类型:示例操作如下 obj = pojo.newInstance(); // 首先得到pojo所定义的字段 Field[] fi ...
- pwn第一周
源码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> void setbufs() { set ...
- JAVA中使用Dom解析XML
在G盘下新建XML文档:person.xml,XML代码: <?xml version="1.0" encoding="utf-8"?> <s ...
- 2.1 什么是C++
C++是一种通用程序设计语言,特别是面向系统程序设计. 1:是一个更好的C 2:支持数据抽象 3:支持面向对象的程序设计 4:支持通用型程序设计