easyUI datagrid editor扩展dialog
easyUI datagrid简单使用:着重两点1、editor对象的click事件;2、将dialog窗体内的值填写到当前正编辑的单元格内
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="css/easyui.css" rel="stylesheet" />
<link href="css/icon.css" rel="stylesheet" />
<link href="css/demo.css" rel="stylesheet" />
<script src="js/jquery.min.js"></script>
<script src="js/jquery.easyui.min.js"></script>
</head>
<body>
<!--datagrid-->
<table id="dg"></table>
<!--dialog-->
<div id="dd">
<input type="text" id="txt" />
</div>
<script type="text/javascript">
var columns = [[
{ field: 'A', title: 'A', width: 100, rowspan: 2 },
{ title: 'B', colspan: 3 },
{ title: 'C', colspan: 3 }
], [
{
field: 'a', title: 'a', width: 100, editor: {
type: 'textbox',
options: {
required: true,
missingMessage: '*必填*'
}
}
},
{
field: 'b', title: 'b', width: 100, editor: {
type: 'datebox'
}
},
{
field: 'c', title: 'c', width: 100, editor: {
type: 'combobox',
options: {
data: [{ value: 'cc', text: 'cc' }, { value: 'ccc', text: 'ccc' }],
panelHeight: 'auto'
}
}
},
{
field: 'd', title: 'd', width: 100, editor: {
type: 'numberbox',
options: { precision: 1 }
}
},
{ field: 'e', title: 'e', width: 100, editor: { type: 'checkbox', options: { on: '1', off: '0' } } },
{
field: 'f', title: 'f', width: 100, editor: {
type: 'dialog',
options: {
dlgId: 'dd',
textId: 'txt',
currField: 'f'
}
}
}
]];
var data = [{ A: 'A', a: 'a', b: 'b', c: 'c', d: 'd', e: 'e', f: 'f' }];
$(function () {
//初始化弹窗
$('#dd').dialog({
title: '弹窗',
width: 400,
height: 'auto',
closed: true,
cache: false,
modal: true,
buttons: [{
text: '保存',
handler: function () {
var index = editIndex;
var cellEditor = $('#dg').datagrid('getEditor', { index: index, field: editField });
cellEditor.actions.setValue(cellEditor.target, $('#txt').val());
$('#dd').dialog('close');
}
}, {
text: '取消',
handler: function () {
$('#dd').dialog('close');
}
}]
});
//初始化表格
$('#dg').datagrid({
data: data,
title: '对账报告- PA02',
iconCls: 'icon-title',
width: 650,
height: 'auto',
singleSelect: true,
fitColumns: false,
columns: columns,
rownumbers: true,
showFooter: true,
pagination: true,//分页控件
fit: true,//自动大小
border: true,
onLoadSuccess: onLoadSuccess,
toolbar: [{
text: '添加',
iconCls: 'icon-add',
handler: function () {
editCell = false;
if ($('#dg').datagrid('validateRow', editIndex)) {
$('#dg').datagrid('endEdit', editIndex);
$('#dg').datagrid('appendRow', {});
$('#dg').datagrid('selectRow', editIndex + 1).datagrid('beginEdit', editIndex + 1);
editIndex = editIndex + 1;
}
}
}]
});
//设置分页控件
var p = $('#dg').datagrid('getPager');
$(p).pagination({
pageSize: 10,//每页显示的记录条数,默认为10
pageList: [5, 10, 15],//可以设置每页记录条数的列表
beforePageText: '第',//页数文本框前显示的汉字
showRefresh: false,
afterPageText: '页 共 {pages} 页',
displayMsg: '<span style="font-size:20px;font-weight:700"></span>当前显示 {from} - {to} 条记录 共 {total} 条记录'
});
});
var editIndex = -1;//标识编辑行
var editField;//正在编辑的单元格所属字段
function onLoadSuccess() {
editIndex = $('#dg').datagrid('getRows').length - 1;
}
//重写editor,添加弹出框类型
$.extend($.fn.datagrid.defaults.editors, {
dialog: {
init: function (container, options) {
var editor = $('<input type="text"/>').appendTo(container);
editor.textbox(options);
container.click(function () {
$('#' + options['dlgId']).dialog('open');
editField = options['currField'];
});
return editor;
},
getValue: function (target) {
return $(target).textbox('getValue', $(target).val());
},
setValue: function (target, value) {
if (value)
$(target).textbox('setValue', value);
else
$(target).textbox('setValue', '');
},
resize: function (target, width) {
$(target).textbox('resize', width);
},
destroy: function (target) {
$(target).textbox('destroy');
}
}
});
</script>
</body>
</html>
easyUI datagrid
页码导航栏pagination,在此处代码中与datagrid分开初始化,自定义了pagination,会导致初始页面加载两次,其原因是第一次表格加载取得总记录数total,和页码栏total值不相等,那么easyui会重新发一次请求,解决办法是可以注释掉源码中再次请求的代码
1097//if(_b3.total==0){
1098//_b3.pageNumber=0;
1099//_b4=0;
1100//}
但是还有解决办法,注释掉下面代码,没有测试呢
if(_615.total!=data.total){
_614.pagination("refresh",{total:data.total});
if(opts.pageNumber!=_615.pageNumber){
opts.pageNumber=_615.pageNumber;
_5d7(_60f);
}
}
easyUI datagrid editor扩展dialog的更多相关文章
- 关于EasyUI datagrid editor combogrid搜索框的实现
首先需要datagrid editor对combogrid的扩展,这个是别人实现的: $.extend($.fn.datagrid.defaults.editors, { combogrid: { i ...
- easyui datagrid editor checkbox 单击事件
Easyui datagrid treegrid中能够为行追加checkbox元素.比如: $('#tt').treegrid({ url:'get_data.php', idField:'id', ...
- jquery EasyUI datagrid 的扩展
接触 easyui 半年,js学的不深.大神请路过. 直接扩展 添加方法: $.extend($.fn.datagrid.methods, { getSelectedIndex: function ( ...
- easyui datagrid plunges 扩展 插件
项目使用 springmvc4.x spring4.x hibernate4.x easyui 为了便于开发,扩展了easyui 的 datagrid 功能,下面直接贴上扩展代码: /** * ...
- 关于EasyUI datagrid 无法在dialog中显示的问题分析及解决方案!
最近项目中引用了easyUI,很大程度上的简化了开发过程,但是随之而来的也遇到一些问题,比如:标题中遇到的问题,去网上搜罗了下关于这个问题的解决方案,不是说的很复杂就是干脆文不对题,国外的使用这种稍微 ...
- Easyui datagrid editor为combobox时指定数据源
当在datagrid行内部应用添加编辑操作时,引入combobox是非常方便的操作,我在引入combobox时对数据源这快做个总结,在做demo的过程中遇到个问题,就是当你选择了下拉框的值后点击保存, ...
- easyUI datagrid view扩展
//扩展easyuidatagrid无数据时显示界面 var emptyView = $.extend({}, $.fn.datagrid.defaults.view, { onAfterRender ...
- easyui datagrid editor combobox添加空选则清空combobox框
<script type='text/javascript'> var editIndex = undefined; $(function() { $('#tb1').datagrid({ ...
- easyui datagrid editor onBeforeEdit事件下使用getEditor和getEditors失效
我在使用onClickRow: function(rowIndex,rowData){ if(editRow!=-1){ ...
随机推荐
- 1110MySQL select实现原理
转自http://www.jianshu.com/p/NsWbRv 工作中需要借鉴MySQL对于select的具体实现,在网上搜了很久,几乎都是介绍原理的,对于实现细节都没有介绍,无奈之下只得自己对着 ...
- Maven的pom.xml标签详解
<!--父项目的坐标.如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值. 坐标包括group ID,artifact ID和 version.--> <paren ...
- RabbitMQ 发布/订阅
我们会做一些改变,就是把一个消息发给多个消费者,这种模式称之为发布/订阅(类似观察者模式). 为了验证这种模式,我们准备构建一个简单的日志系统.这个系统包含两类程序,一类程序发动日志,另一类程序接收和 ...
- Android NestedScrolling与分发机制
在Android5.0之间要实现控件的嵌套滑动,都是要自己处理View事件即分发机制. 共有三个方法: dispatchTouchEvent().onInterceptTouchEvent()和 ...
- ActiveMQ_安全配置(五)
如果Activemq不加安全配置,那么任何知道队列所在服务器IP的人都可以发送接收队列消息 安全配置主要是通过配置账号密码增强安全性 参考资料:http://activemq.apache.org/s ...
- Mustache 使用总结
前言: 在分析 jeesite 项目的时候,看到了 Mustache,于是查了下 正文: 1.Mustache 概述 Mustache 是基于 JavaScript 实现的模板引擎,即用来 渲染前台页 ...
- C#-WinForm-客户端程序-Form基本属性
WinForm - 客服端程序(C/S) WindowsForm 的简称 客户端应用程序:是需要安装在用户电脑上才可以使用的程序,代码部分在用户电脑上执行 特点:不需要联网也可以打开使用部分功能,但现 ...
- Html一天入门
一.什么是HTML 1.html: HyperText Markup Language 超文本标记语言,是最基础的网页语言,而且都是由标签组成. 2.基本格式: <html> <he ...
- 【转】Handler学习笔记(一)
一.Handler的定义: Handler主要接收子线程发送的数据, 并用此数据配合主线程更新UI,用来跟UI主线程交互用.比如可以用handler发送一个message,然后在handler的线程中 ...
- 简进祥===AFNetWorking 下载视频文件
获取沙盒中的Documents地址的代码. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUs ...