码迷,mamicode.com
首页 > 其他好文 > 详细

EasyUI-Datagrid行内编辑

时间:2016-04-25 09:21:56      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:


      接上一篇,这次介绍easyUI的datagrid的行内编辑单元格的功能。


      关于行内编辑,我之前写过一个demo 《jQuery:页面可编辑表格》,但是easyui 中早已经封装了行内单元格编辑的功能,我们在调用时只需要使用人家封装好的方法就行。这里就使用封装好的方法。

实现思路:

      1.定义table 时写上监听单击事件的方法:onClickCell:onClickCell;

      2.将需要编辑的<th>和<td>设置编辑的触发响应:editor:‘text‘。其中text只是它的一种类型,也可以写combox或设置它的数据类型等。

     3.响应onclickcell和editor的方法,编写js文件(详细见代码)。


<head>
    @*引入的easyui的js和css*@
<script src="../../Content/jquery-easyui-1.3.2/jquery-1.8.0.min.js"></script>
<link href="../../Content/themes/base/minified/jquery-ui.min.css" rel="stylesheet" />
<script src="../../Content/jquery-easyui-1.3.2/jquery.easyui.min.js"></script>
<link href="../../Content/jquery-easyui-1.3.2/themes/icon.css" rel="stylesheet" />
<link href="../../Content/jquery-easyui-1.3.2/themes/default/easyui.css" rel="stylesheet" />
<script src="../../Content/jquery-easyui-1.3.2/locale/easyui-lang-zh_CN.js"></script>


    <title>企业经营管理人才类别情况统计表2 </title>
</head>

<body>
    <div>     
     @* 定义table  *@
     <table id ="dg" class="easyui-datagrid" style="width: auto; height: auto;" title="企业经营管理人才类别情况统计表2" data-options="url:'/EnterpriseManagement2/FillData',fitColumns:true,singleSelect:true,pageSize:10,iconCls:'icon-edit',method:'get',onClickCell:onClickCell" sortname="CourseId" sortorder="asc" rownumbers="true" pagination="true">
      @*复杂表头的处理,合并单元格*@
		<thead>           	
			<tr>
				<th  rowspan="2">项目</th>
				<th  rowspan="2">合计</th>
     			<th  rowspan="2">女士</th>
				<th colspan="5">学历</th>
                <th colspan="6">年龄</th>
				<th rowspan="2">自主创业</th>
                <th  rowspan="2">再就业人数</th>
				<th  rowspan="2">拥有专利人数</th>
                <th  rowspan="2">拥有执业资格人数</th>			
			</tr>
            <tr>
				<th >研究生</th>
				<th >大学本科</th>
				<th >大学专科</th>
				<th >中专</th>
				<th >高中及以下</th>
                <th >35岁以下</th>
				<th >36-40岁</th>
				<th >41-45岁</th>
				<th >46-50岁</th>
				<th >51-54岁</th>
				<th >55岁以上</th>
			</tr>
			<tr>
				<th data-options="field:'sumID',width:137,align:'center'">甲</th>
				<th data-options="field:'one',width:70,align:'center',editor:'text'">1</th>
				<th data-options="field:'two',width:70,align:'center',editor:'text'">2</th>
				<th data-options="field:'three',width:70,align:'center',editor:'text'">3</th>
				<th data-options="field:'four',width:70,align:'center',editor:'text'">4</th>
				<th data-options="field:'five',width:70,align:'center',editor:'text'">5</th>
				<th data-options="field:'six',width:70,align:'center',editor:'text'">6</th>
				<th data-options="field:'seven',width:70,align:'center',editor:'text'">7</th>
                <th data-options="field:'eight',width:70,align:'center',editor:'text'">8</th>
				<th data-options="field:'night',width:70,align:'center',editor:'text'">9</th>
				<th data-options="field:'ten',width:70,align:'center',editor:'text'">10</th>
				<th data-options="field:'eleven',width:70,align:'center',editor:'text'">11</th>
				<th data-options="field:'twelve',width:70,align:'center',editor:'text'">12</th>
				<th data-options="field:'thirteen',width:70,align:'center',editor:'text'">13</th>
				<th data-options="field:'fourteen',width:70,align:'center',editor:'text'">14</th>
				<th data-options="field:'fifteen',width:70,align:'center',editor:'text'">15</th>
                <th data-options="field:'sixteen',width:85,align:'center',editor:'text'">16</th>
				<th data-options="field:'seventeen',width:110,align:'center',editor:'text'">17</th>
			</tr>          
		</thead> 
	</table>



 @* 可编辑表格单机触发*@
<script type="text/javascript">
            $.extend($.fn.datagrid.methods, {
                editCell: function (jq, param) {
                    return jq.each(function () {
                        var opts = $(this).datagrid('options');
                        var fields = $(this).datagrid('getColumnFields', true).concat($(this).datagrid('getColumnFields'));
                        for (var i = 0; i < fields.length; i++) {
                            var col = $(this).datagrid('getColumnOption', fields[i]);
                            col.editor1 = col.editor;
                            if (fields[i] != param.field) {
                                col.editor = null;
                            }
                        }
                        $(this).datagrid('beginEdit', param.index);
                        for (var i = 0; i < fields.length; i++) {
                            var col = $(this).datagrid('getColumnOption', fields[i]);
                            col.editor = col.editor1;
                        }
                    });
                }
            });

            var editIndex = undefined;
            function endEditing() {
                if (editIndex == undefined) { return true }
                if ($('#dg').datagrid('validateRow', editIndex)) {
                    $('#dg').datagrid('endEdit', editIndex);
                    editIndex = undefined;
                    return true;
                } else {
                    return false;
                }
            }
            function onClickCell(index, field) {
                if (endEditing()) {
                    $('#dg').datagrid('selectRow', index)
                            .datagrid('editCell', { index: index, field: field });
                    editIndex = index;
                }
            }
</script>
    </div>

效果:


技术分享




EasyUI-Datagrid行内编辑

标签:

原文地址:http://blog.csdn.net/mengdonghui123456/article/details/51232796

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!