原文: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增删改查操作及确认按钮的更多相关文章

  1. mongoVUE的增删改查操作使用说明

    mongoVUE的增删改查操作使用说明 一. 查询 1. 精确查询 1)右键点击集合名,再左键点击Find 或者直接点击工具栏上的Find 2)查询界面,包括四个区域 {Find}区,查询条件格式{& ...

  2. 浅谈dataGridView使用,以及画面布局使用属性,对datagridview进行增删改查操作,以及委托使用技巧

        通过几天的努力后,对datagridview使用作一些简要的介绍,该实例主要运用与通过对datagridview操作.对数据进行增删改查操作时,进行逻辑判断执行相关操作.简单的使用委托功能,实 ...

  3. 详谈easyui datagrid增删改查操作

    转自:http://blog.csdn.net/abauch_d/article/details/7734395 前几天我把easyui dadtagrid的增删改查的实现代码贴了出来,发现访问量达到 ...

  4. 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作

    专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...

  5. C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。

    1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...

  6. (转)SQLite数据库增删改查操作

    原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...

  7. PHP程序中使用PDO对象实现对数据库的增删改查操作的示例代码

    PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty) dbconn.php <?php //------------------------使用PDO方式连接数据库文件- ...

  8. 05_Elasticsearch 单模式下API的增删改查操作

    05_Elasticsearch 单模式下API的增删改查操作 安装marvel 插件: zjtest7-redis:/usr/local/elasticsearch-2.3.4# bin/plugi ...

  9. JDBC连接数据库及增删改查操作

    什么是JDBC?Java语言访问数据库的一种规范,是一套APIJDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类 ...

随机推荐

  1. Kali下进行局域网断网攻击

    今天我就来演示一下在kali下的局域网断网攻击,即ARP地址欺骗,下图所要用到的arp地址欺骗状态图: 则: 第一步:假设主机A访问某网站,那么要告知某网站我的IP和MAC地址,但这是以广播的方式告知 ...

  2. 手把手教用C#编写Windows服务 并控制服务 安装、启动、停止、卸载

    Windows服务 Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动, ...

  3. 原生js获取display属性注意事项

    原生js获取diaplay属性需要在标签上写行间样式style='display:none/block;' <div style="display:block;">&l ...

  4. Vue钩子函数

    Vue的生命周期函数 beforeCreate:function(){ console.log('1-beforeCreate 初始化之后'); }, created:function(){ cons ...

  5. jpg/jpeg/png格式的区别与应用场景

    注:在存储图像时采用JPG还是PNG主要依据图像上的色彩层次和颜色数量进行选择 一..jpg/jpeg格式的图片(jpg全名:jpeg) JPG(或是JPEG): 优点: (1)占用内存小,网页加载速 ...

  6. Linux命令基础6-mkdir命令

    mkdir是英文单词make directory的缩写.mkdir就是用来创建路径,一般就是用来创建文件夹的. 语法 mkdir (选项)(参数) 选项 -Z:设置安全上下文,当使用SELinux时有 ...

  7. 织梦关于表情符后面跟着css样式修改

    织梦关于表情符后面跟着css样式修改,前段页面是会员中心里,后台是会员心情管理 前段修改路径找到member\index_do.php  大约在396行,找不到搜索  ‘对表情进行解析’  替换下面的 ...

  8. 深入理解RocketMQ的消费者组、队列、Broker,Topic

    1.遇到的问题:上测试环境,上次描述的鸟问题又出现了,就是生产者发3条数据,我这边只能收到1条数据. 2.问题解决: (1)去控制台看我的消费者启动情况,貌似没什么问题 , (2)去测试服务器里看日志 ...

  9. python爬取动态网页数据,详解

    原理:动态网页,即用js代码实现动态加载数据,就是可以根据用户的行为,自动访问服务器请求数据,重点就是:请求数据,那么怎么用python获取这个数据了? 浏览器请求数据方式:浏览器向服务器的api(例 ...

  10. P3674 小清新人渣的本愿 莫队+bitset

    ennmm...bitset能过系列. 莫队+bitset \(\mathcal{O}(m\sqrt n + \frac{nm}{w})\) 维护一个正向的 bitset <N> mem ...