EasyUI DataGrid 编辑单元格

之前文章 EasyUI DataGrid可编辑单元格实现可编辑单元格,如果有多列都需要可编辑 当点击一个单元格 则此整行都会进行编辑

如下图:

现改为单击某个单元格只对此单元格进行可编辑

<TABLE>标记添加 onClickCell

<table id="dg" class="easyui-datagrid" data-options="onClickCell: onClickCell">

需要进行编辑的列上添加 editor

<th data-options="field:‘itemId‘,editor:‘numberbox‘"></th>

也可以指定

  • 小数位数:editor:{type:’numberbox’,options:{precision:1}}
  • 文本类型:editor:’text’
  • checkbox:editor:{type:’checkbox’,options:{on:’启动’,off:’关闭’}}

效果如下:

核心代码

<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>

在线演示

作者:itmyhome

时间: 2024-08-26 17:15:43

EasyUI DataGrid 编辑单元格的相关文章

easyui datagrid 合并单元格

整理以前做的东西,这个合并单元格的问题再新浪博客也写过了..... 下面这段代码是列表数据 //载入排放系数管理报表数据 function LoadEmissionReportData() { //获取计算ID var CountID = getUrlParam("CountID"); $.ajax({ type: "POST", url: "../Ashx/GetGasInventoryListInfo.ashx?type=getParamReport&

easyui前台改变datagrid某单元格的值

有时候前台完成某个操作后要修改datagrid的值, 也许这个datagrid是没有保存的, 所以要修改后才能传递到后台; 也许要其他操作过后才需请求后台; 这些情况都需要前台对datagrid的单元格进行修改操作: 假设我们有一个” staffLogDetailGrid”的datagrid; // 得到columns对象 var columns = $('#dg').datagrid("options").columns; // 得到rows对象 var rows = $('#dg'

LVC函数重要参数 EDT_CLL_CB:退出可编辑单元格时回调

6. I_GRID_SETTINGS 参数属性该参数用于设置Grid相关参数(打印.单元格回调):类型为:LVC_S_GLAY,该结构包括:01) COLL_TOP_P:最小化 TOP_OF_PAGE02) COLL_END_L:最小化 END_OF_LIST03) TOP_P_ONLY:仅打印TOP_OF_PAGE04) EOL_P_ONLY:仅打印END_OF_LIST05) NO_COLWOPT:不优化打印的列宽***************************************

DOJO dataGrid 单击单元格选中行

onCellClick: lang.hitch(this, function(event){ //单元格单击事件 var grid = dijit.byId("__geodisa_grid"); var rowIndex = event.rowIndex; //如果已有选择的行则取消改行选中状态 if (grid.selection.selectedIndex >= 0) { grid.selection.setSelected(grid.selection.selectedIn

Swift - 可编辑表格样例(可直接编辑单元格中内容、移动删除单元格)

(本文代码已升级至Swift3) 本文演示如何制作一个可以编辑单元格内容的表格(UITableView). 1,效果图 (1)默认状态下,表格不可编辑,当点击单元格的时候会弹出提示框显示选中的内容.           (2)点击导航栏右侧编辑按钮,表格进入可以编辑状态 (3)这时我们可以删除表格项. (4)也可以拖动调整单元格的顺序. (5)然后就是本文的重点,在编辑状态下.直接点击单元格,即可在当前页面下直接编辑修改单元格中的内容. 2,单元格编辑功能讲解 (1)通过自定义 UITableV

EasyUI中修改DataGrid的单元格显示内容

自定义的单元格数据显示,以实现如下效果为例 使用列属性的formatter属性即可修改,示例如下 $("#roleList").datagrid({     url : "${pageContext.request.contextPath}/role/list",     columns : [[{         field : "id",         checkbox : true     }, {         field : &qu

【原创】有关Silverlight中“DataGrid中单元格动态绑定ComboBox单击时数据项莫名被清除 ”的解决方案及思路。

今天上班遇到一个很古怪的问题,搞了半天愣是没找到原因.是这样的,在Datagrid中有绑定一个ComboBox列,其不包含在 model数据中,而是单独在LoadingRow事件中去 从数据库拿数据绑定. 绑定成功以后,但在对 单元格进行编辑时(也就是点击ComboBox),瞬间ComboBox内内容都被莫名清空了. 查看了前台绑定的datagrid事件,并没有太多事件里 对ComboBox进行了清空操作,于是找到了一个最有嫌疑的 事件"CurrentCellChanged", 代码如

DataGrid合并单元格(wpf)

在网上搜索wpf合并单元格,一直没搜索到,没办法,只能自己想办法搞定了.其实就是DataGrid套DataGrid,为了方便支持Column拖动,在合并的DataGridColumn那一列的Header也放一个DataGrid,但是合并的这一个连续列中只支持一列的拖动,效果如下,上图 代码如下 首先定义两个模板,一个用于合并的Header显示 <DataTemplate x:Key="MergeHeader">             <DataGrid Horizo

WPF DataGrid 合并单元格

在网上搜索wpf合并单元格,一直没搜索到,没办法,只能自己想办法搞定了.其实就是DataGrid套DataGrid,为了方便支持Column拖动,在合并的DataGridColumn那一列的Header也放一个DataGrid,但是合并的这一个连续列中只支持一列的拖动,效果如下,上图 代码如下 首先定义两个模板,一个用于合并的Header显示 <DataTemplate x:Key="MergeHeader">             <DataGrid Horizo