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的更多相关文章

  1. 关于EasyUI datagrid editor combogrid搜索框的实现

    首先需要datagrid editor对combogrid的扩展,这个是别人实现的: $.extend($.fn.datagrid.defaults.editors, { combogrid: { i ...

  2. easyui datagrid editor checkbox 单击事件

    Easyui datagrid treegrid中能够为行追加checkbox元素.比如: $('#tt').treegrid({ url:'get_data.php', idField:'id', ...

  3. jquery EasyUI datagrid 的扩展

    接触 easyui 半年,js学的不深.大神请路过. 直接扩展 添加方法: $.extend($.fn.datagrid.methods, { getSelectedIndex: function ( ...

  4. easyui datagrid plunges 扩展 插件

      项目使用 springmvc4.x  spring4.x  hibernate4.x easyui 为了便于开发,扩展了easyui 的 datagrid 功能,下面直接贴上扩展代码: /** * ...

  5. 关于EasyUI datagrid 无法在dialog中显示的问题分析及解决方案!

    最近项目中引用了easyUI,很大程度上的简化了开发过程,但是随之而来的也遇到一些问题,比如:标题中遇到的问题,去网上搜罗了下关于这个问题的解决方案,不是说的很复杂就是干脆文不对题,国外的使用这种稍微 ...

  6. Easyui datagrid editor为combobox时指定数据源

    当在datagrid行内部应用添加编辑操作时,引入combobox是非常方便的操作,我在引入combobox时对数据源这快做个总结,在做demo的过程中遇到个问题,就是当你选择了下拉框的值后点击保存, ...

  7. easyUI datagrid view扩展

    //扩展easyuidatagrid无数据时显示界面 var emptyView = $.extend({}, $.fn.datagrid.defaults.view, { onAfterRender ...

  8. easyui datagrid editor combobox添加空选则清空combobox框

    <script type='text/javascript'> var editIndex = undefined; $(function() { $('#tb1').datagrid({ ...

  9. easyui datagrid editor onBeforeEdit事件下使用getEditor和getEditors失效

    我在使用onClickRow: function(rowIndex,rowData){                    if(editRow!=-1){                      ...

随机推荐

  1. 第十五章:输入和输出(I/O)

    一:流分类 抽象基类:InputStream和Reader        抽象类不能用于创建模板哦! OutputStream和Writer 方向:  以内存为中心! 输入流(读) 输出流(写) 数据 ...

  2. 检测当前网段哪些IP是在线的

    [root@storage ~]# cat ping.ip #!/bin/bashfor ip in `seq 1 255`    do    {      ping -c 2 192.168.220 ...

  3. curl operate elasticsearch

    export elasticsearchwebaddress=localhost:9200# 1. Add documentcurl -X PUT "$elasticsearchwebadd ...

  4. git diff命令

    1. 比较两次提交的差异 2. 两个分支之间的比较 3. 暂存区和版本库的比较

  5. 【HDU 2089】不要62

    http://acm.hdu.edu.cn/showproblem.php?pid=2089 数位dp,参照了打野的博客 预处理出f数组,f[i][j]表示第i位为数字j时的可行的数字总数. 对于区间 ...

  6. Kernel Methods (1) 从简单的例子开始

    一个简单的分类问题, 如图左半部分所示. 很明显, 我们需要一个决策边界为椭圆形的非线性分类器. 我们可以利用原来的特征构造新的特征: \((x_1, x_2) \to (x_1^2, \sqrt 2 ...

  7. java基础语法要点<一>(基于1.8)

    http://yishouce.com/java/run http://www.shucunwang.com/RunCode/java/ 数据类型 8种基本数据类型及对应的 类型封装器 byte, s ...

  8. ajax跨域原理以及解决方案

    说明 跨域主要是由于浏览器的“同源策略”引起,分为多种类型,本文主要探讨Ajax请求跨域问题 前言 强烈推荐阅读参考来源中的文章,能够快速帮助了解跨域的原理 参考来源 本文参考了以下来源 浏览器同源政 ...

  9. 【CodeForces 261B】Maxim and Restaurant(DP,期望)

    题目链接 第一种解法是$O(n^3*p)$的:f[i][j][k]表示前i个人进j个人长度为k有几种方案(排列固定为123..n时).$f[i][j][k]=f[i-1][j][k]+f[i-1][j ...

  10. bzoj4403: 序列统计

    我们很容易发现答案是C(R-L+N+1,N)-1 然后用一下lucas定理就行了 #include <iostream> #include <cstdio> #include ...