easyUI datagrid editor扩展dialog

easyUI datagrid简单使用:着重两点1、editor对象的click事件;2、将dialog窗体内的值填写到当前正编辑的单元格内

  1 <!DOCTYPE html>
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5     <title></title>
  6     <link href="css/easyui.css" rel="stylesheet" />
  7     <link href="css/icon.css" rel="stylesheet" />
  8     <link href="css/demo.css" rel="stylesheet" />
  9     <script src="js/jquery.min.js"></script>
 10     <script src="js/jquery.easyui.min.js"></script>
 11 </head>
 12 <body>
 13     <!--datagrid-->
 14     <table id="dg"></table>
 15     <!--dialog-->
 16     <div id="dd">
 17         <input type="text" id="txt" />
 18     </div>
 19     <script type="text/javascript">
 20         var columns = [[
 21             { field: ‘A‘, title: ‘A‘, width: 100, rowspan: 2 },
 22             { title: ‘B‘, colspan: 3 },
 23             { title: ‘C‘, colspan: 3 }
 24         ], [
 25             {
 26                 field: ‘a‘, title: ‘a‘, width: 100, editor: {
 27                     type: ‘textbox‘,
 28                     options: {
 29                         required: true,
 30                         missingMessage: ‘*必填*‘
 31                     }
 32                 }
 33             },
 34             {
 35                 field: ‘b‘, title: ‘b‘, width: 100, editor: {
 36                     type: ‘datebox‘
 37                 }
 38             },
 39             {
 40                 field: ‘c‘, title: ‘c‘, width: 100, editor: {
 41                     type: ‘combobox‘,
 42                     options: {
 43                         data: [{ value: ‘cc‘, text: ‘cc‘ }, { value: ‘ccc‘, text: ‘ccc‘ }],
 44                         panelHeight: ‘auto‘
 45                     }
 46                 }
 47             },
 48             {
 49                 field: ‘d‘, title: ‘d‘, width: 100, editor: {
 50                     type: ‘numberbox‘,
 51                     options: { precision: 1 }
 52                 }
 53             },
 54             { field: ‘e‘, title: ‘e‘, width: 100, editor: { type: ‘checkbox‘, options: { on: ‘1‘, off: ‘0‘ } } },
 55              {
 56                  field: ‘f‘, title: ‘f‘, width: 100, editor: {
 57                      type: ‘dialog‘,
 58                      options: {
 59                          dlgId: ‘dd‘,
 60                          textId: ‘txt‘,
 61                          currField: ‘f‘
 62                      }
 63                  }
 64              }
 65         ]];
 66         var data = [{ A: ‘A‘, a: ‘a‘, b: ‘b‘, c: ‘c‘, d: ‘d‘, e: ‘e‘, f: ‘f‘ }];
 67         $(function () {
 68             //初始化弹窗
 69             $(‘#dd‘).dialog({
 70                 title: ‘弹窗‘,
 71                 width: 400,
 72                 height: ‘auto‘,
 73                 closed: true,
 74                 cache: false,
 75                 modal: true,
 76                 buttons: [{
 77                     text: ‘保存‘,
 78                     handler: function () {
 79                         var index = editIndex;
 80                         var cellEditor = $(‘#dg‘).datagrid(‘getEditor‘, { index: index, field: editField });
 81                         cellEditor.actions.setValue(cellEditor.target, $(‘#txt‘).val());
 82                         $(‘#dd‘).dialog(‘close‘);
 83                     }
 84                 }, {
 85                     text: ‘取消‘,
 86                     handler: function () {
 87                         $(‘#dd‘).dialog(‘close‘);
 88                     }
 89                 }]
 90             });
 91             //初始化表格
 92             $(‘#dg‘).datagrid({
 93                 data: data,
 94                 title: ‘对账报告- PA02‘,
 95                 iconCls: ‘icon-title‘,
 96                 width: 650,
 97                 height: ‘auto‘,
 98                 singleSelect: true,
 99                 fitColumns: false,
100                 columns: columns,
101                 rownumbers: true,
102                 showFooter: true,
103                 pagination: true,//分页控件
104                 fit: true,//自动大小
105                 border: true,
106                 onLoadSuccess: onLoadSuccess,
107                 toolbar: [{
108                     text: ‘添加‘,
109                     iconCls: ‘icon-add‘,
110                     handler: function () {
111                         editCell = false;
112                         if ($(‘#dg‘).datagrid(‘validateRow‘, editIndex)) {
113                             $(‘#dg‘).datagrid(‘endEdit‘, editIndex);
114                             $(‘#dg‘).datagrid(‘appendRow‘, {});
115                             $(‘#dg‘).datagrid(‘selectRow‘, editIndex + 1).datagrid(‘beginEdit‘, editIndex + 1);
116                             editIndex = editIndex + 1;
117                         }
118                     }
119                 }]
120             });
121             //设置分页控件
122             var p = $(‘#dg‘).datagrid(‘getPager‘);
123             $(p).pagination({
124                 pageSize: 10,//每页显示的记录条数,默认为10
125                 pageList: [5, 10, 15],//可以设置每页记录条数的列表
126                 beforePageText: ‘第‘,//页数文本框前显示的汉字
127                 showRefresh: false,
128                 afterPageText: ‘页    共 {pages} 页‘,
129                 displayMsg: ‘<span style="font-size:20px;font-weight:700"></span>当前显示 {from} - {to} 条记录   共 {total} 条记录‘
130             });
131         });
132         var editIndex = -1;//标识编辑行
133         var editField;//正在编辑的单元格所属字段
134         function onLoadSuccess() {
135             editIndex = $(‘#dg‘).datagrid(‘getRows‘).length - 1;
136         }
137         //重写editor,添加弹出框类型
138         $.extend($.fn.datagrid.defaults.editors, {
139             dialog: {
140                 init: function (container, options) {
141                     var editor = $(‘<input type="text"/>‘).appendTo(container);
142                     editor.textbox(options);
143                     container.click(function () {
144                         $(‘#‘ + options[‘dlgId‘]).dialog(‘open‘);
145                         editField = options[‘currField‘];
146                     });
147                     return editor;
148                 },
149                 getValue: function (target) {
150                     return $(target).textbox(‘getValue‘, $(target).val());
151                 },
152                 setValue: function (target, value) {
153                     if (value)
154                         $(target).textbox(‘setValue‘, value);
155                     else
156                         $(target).textbox(‘setValue‘, ‘‘);
157                 },
158                 resize: function (target, width) {
159                     $(target).textbox(‘resize‘, width);
160                 },
161                 destroy: function (target) {
162                     $(target).textbox(‘destroy‘);
163                 }
164             }
165         });
166     </script>
167 </body>
168 </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);
}
}
时间: 2024-10-12 08:47:55

easyUI datagrid editor扩展dialog的相关文章

easyui datagrid editor checkbox 单击事件

Easyui datagrid treegrid中能够为行追加checkbox元素.比如: $('#tt').treegrid({ url:'get_data.php', idField:'id', treeField:'name', columns:[[ {title:'Task Name',field:'name',width:180}, {field:'persons',title:'Persons',width:60,align:'right'}, {field:'begin',titl

easyui datagrid plunges 扩展 插件

  项目使用 springmvc4.x  spring4.x  hibernate4.x easyui 为了便于开发,扩展了easyui 的 datagrid 功能,下面直接贴上扩展代码: /** * context 指定为 项目上下文 * index 如果定义多组dataGrid,index指定为对应的参数:一组dataGrid包含(datagrid;toorbar;dialog;button) * templateUrl 指定为 此次访问操作对应的controller路径 * crud 指定

easyui Datagrid方法扩展 - tooltip

最新版本的jQuery Easyui新出来了一个组件叫tooltip,就是提示框.以前的版本没有这个组件的时候就有很多在问,datagrid的单元格,我要加鼠标提示要怎么做.原来我告诉他们的方法都是用formatter,大概方法如下: formatter:function(value){ return '<span title="'+value+'">'+value+'<span>'; } 这样的方式就利用了浏览器自己的title特性,来达到显示效果.只是这种实

easyUI datagrid view扩展

1 //扩展easyuidatagrid无数据时显示界面 2 var emptyView = $.extend({}, $.fn.datagrid.defaults.view, { 3 onAfterRender: function (target) { 4 $.fn.datagrid.defaults.view.onAfterRender.call(this, target); 5 var opts = $(target).datagrid('options'); 6 var vc = $(t

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

我在使用onClickRow: function(rowIndex,rowData){                    if(editRow!=-1){                        reportgrid.datagrid('validateRow');                        reportgrid.datagrid('endEdit',editRow);                    } reportgrid.datagrid('beginE

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

<script type='text/javascript'> var editIndex = undefined; $(function() { $('#tb1').datagrid({ url:'CourseTeachersSave.aspx?opt=GetDatagridData&xnxq='+$('#hiddenXnxq').val()+'&synj='+$('#hiddenSynj').val()+'&bh='+$('#hiddenBh').val(), wi

easyui datagrid editor 特定列disabled

//编辑表格   function editRow(rowIndex) {       $('#tt').datagrid('cancelEdit', lastIndex);       $('#tt').datagrid('beginEdit', rowIndex);       lastIndex = rowIndex;       $('#tt').datagrid('getEditor', { index: rowIndex, field: 'VAL_NAME' }).disabled(

JQuery easyUi datagrid 中 editor 动态设置最大值最小值

前言 近来项目中使用到 easyui 来进行页面设计,感觉挺方便的,但是网上除了api外,其他有价值的资料比较少,故在此分享一点经验,供大家参考. 问题 JQuery easyUi datagrid 可编辑行的editor属性具有 min 和 max 属性,设置可以输入的最大值和最小值,但是这个是固定的,如下: [html] view plain copy {field:'workRate',title:'<%/*填报*/%><bean:message key="task.wo

EasyUi datagrid(onClickCell:用户单击一个单元格时触发 ) 單擊編輯 editor:{type: &#39;combobox&#39;}

1.columns列[一個單元格] 添加combobox下拉選項 $("#userGrid").datagrid({ singleSelect: true,            onClickCell: function (index, field, value) {                //Field = field;                //                var rows = $('#' + UserGrid).datagrid('getRo