在easyUI 动态绑定部分数据后,需要有部分列可以修改,研究了一天终于搞定。这是小弟的做法,望各位有好招的大侠指点。

1.添加jQuery 和jQuery easyuI的引用。

2.添加id为tt的table和获取行数据测试按钮getChangeValue

<div id="setRoleDiv" style=" display:none;">
<iframe id="frmSetRole" src="" scrolling="no" width="100%" height="100%" frameborder="0">
</iframe>
</div> <input type="button" value="getChangeValue" onclick="showChange()"/>

3.页面加载时通过url调用后台json数据。并对列进行和相关事件,属性绑定。代码如下

    $(function () {
LoadInitData(); //根据查询条件加载列表
$("#btnQuerySearch").click(function (e) {
var strName = $("#searchUName").val();
var strMail = $("#searchMail").val();
LoadInitData({ UserName: strName, Email: strMail });
}); $("#frmEdit").css("display", "none"); }); function LoadInitData(queryParams) {
$('#tt').datagrid(
{
url: '/UserInfo/GetPageUserInfo',
title: '演示表格使用',
width: 'auto',
height: 370,
fitColumns: true,
idField: 'ID',
loadMsg: '正在加载用户的信息...',
pagination: true,
singleSelect: false,
pageSize: 10,
pageNumber: 1,
pageList: [10, 20, 30],
queryParams: queryParams,
columns: [[
{ field: 'ck', checkbox: true, align: 'left', width: 50, height: 40 },
{ field: 'ID', title: '主键', width: 80 },
{ field: 'UserName', title: '用户名', width: 120 },
{ field: 'PassWord', title: '密码', width: 80 },
{ field: 'Email', title: '邮箱', width: 80 },
{ field: 'Address', title: '住址', width: 80 },
{ field: 's', title: 'ss', width: 80, editor: { type: 'numberbox', required:true, options: { precision: 1}} },
{ field: 'CreateDate', title: '提交时间', width: 80, align: 'right',
//日期为null时 此格式不可用,只能加载第一页数据
formatter: function (value, row, index) {
return (eval(value.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"))).pattern("yyyy-M-d h:m:s.S");
}
}
// ,{field:'showprice',title:'商品价格',width:80,align:'right',
// styler:function(value,row,index){
// if (value < 20){
// return 'background-color:#ffee00;color:red;';
// }
// },
// formatter:function(value,row,index){
// return "<a href='#' onclick='editGoodsPrice(" + row.goodsid + ");return false;'>" + value + "</a>";
// }
// }
]],
toolbar: [{
id: 'btnDownShelf',
text: '添加',
iconCls: 'icon-add',
handler: function () {
//显示 添加div层;
$("#addDialog").css("display", ""); //弹出窗口
InitShowAddDialog();
}
}, {
id: 'btnDownShelf',
text: '修改',
iconCls: 'icon-edit',
handler: function () {
dealEdit();
}
}
, {
id: 'btnDownShelf',
text: '删除',
iconCls: 'icon-remove',
handler: function () {
dealDelete();
}
}
, {
id: 'btnSetRole',
text: '设置用户角色',
iconCls: 'icon-redo',
handler: function () {
dealSetRole();
}
},'-', {
text: 'accept',
iconCls: 'icon-save',
handler: function () {
$('#tt').datagrid('acceptChanges');
}
}
],
onHeaderContextMenu: function (e, field) { },
onClickRow: function (e) {
$('#tt').datagrid('beginEdit',e);
}
}); }

以上代码注意

(1)触发可编辑的列(ss)需要添加editors列属性editor: { type: 'numberbox', required:true, options: { precision: 1}}

(2)通过grid的onClickRow事件触发可编辑的列(ss)。
  onClickRow: function (e) {
                   $('#tt').datagrid('beginEdit',e);//'beginEdit‘方法必须有一个参数
                }

(3)接受改变值,并获取选中列的值

function showChange() {
            $('#tt').datagrid('acceptChanges');//'acceptChanges'方法提交所有修改的数据,提交后的数据将不能再修改或者回滚。
            var data = $('#tt').datagrid('getSelections');

//提交数据给后台 ,后台只需反序列化就ok,代码如下:

if (rows.length<1) {
           $.messager.alert("消息提示", "至少选择一条数据保存");
           }
         else {
          var jsonDataStr = "";
         jsonDataStr = JSON.stringify(rows);

$.post("/User/Add.ashx", { "data": jsonDataStr }, function () {

});
         }

}

结果如下图

jQuery easyuI datagrid 多行编辑的更多相关文章

  1. 扩充 jQuery EasyUI Datagrid 数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)

    客户需求: jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) 如图所示,Datagrid 鼠标悬停/离开数据行时 ...

  2. 扩展 jQuery EasyUI Datagrid 数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)

    客户需求: jQuery EasyUI Datagrid 用户列表鼠标悬停/离开数据行时显示人员头像(onMouseOver/onMouseOut) 如图所示,Datagrid 鼠标悬停/离开数据行时 ...

  3. jquery easyui datagrid设置可编辑行的某个列不可编辑

    function onClickRowd(index1, field1) { if (editIndexd != index1) { if (endEditing()) { $('#dg').data ...

  4. jquery easyui datagrid设置行样式 不可删除某行

    rowStyler: function (index,row) { if (parseInt(row.ksrs) > 0) { return 'color:red'; } }, onLoadSu ...

  5. 扩展jquery easyui datagrid编辑单元格

    扩展jquery easyui datagrid编辑单元格 1.随便聊聊 这段时间由于工作上的业务需求,对jquery easyui比较感兴趣,根据比较浅薄的js知识,对jquery easyui中的 ...

  6. jquery easyui datagrid 获取Checked选择行(勾选行)数据

    原文:jquery easyui datagrid 获取Checked选择行(勾选行)数据 getSelected:取得第一个选中行数据,如果没有选中行,则返回 null,否则返回记录. getSel ...

  7. jquery easyui datagrid使用参考

    jquery easyui datagrid使用参考   创建datagrid 在页面上添加一个div或table标签,然后用jquery获取这个标签,并初始化一个datagrid.代码如下: 页面上 ...

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

    前言 近来项目中使用到 easyui 来进行页面设计,感觉挺方便的,但是网上除了api外,其他有价值的资料比较少,故在此分享一点经验,供大家参考.   问题 JQuery easyUi datagri ...

  9. JQuery easyUi datagrid 中 自定义editor作为列表操作按钮列

    转自   http://blog.csdn.net/tianlincao/article/details/7494467 前言 JQuery easyUi datagrid 中 使用datagrid生 ...

随机推荐

  1. sublim的正则匹配(待续)

    ctrl+H 打开匹配模式 打开正则匹配模式 正则匹配的一些方法:  点代表的是任意字符.* 代表的是取 0 至 无限长度问号代表的是非贪婪模式.三个链接在一起是取尽量少的任意字符,一般不会这么单独写 ...

  2. 设定网页最小最大宽度和高度(兼容IE6)

    http://www.cnblogs.com/double-bin/archive/2011/12/19/2293093.html /* 最小寬度 */ .min_width{min-width:30 ...

  3. Android(java)学习笔记61:Android中的 Application类用法

    1. 简介 如果想在整个应用中使用全局变量,在java中一般是使用静态变量,public类型:而在android中如果使用这样的全局变量就不符合Android的框架架构,但是可以使用一种更优雅的方式就 ...

  4. Uva 10820 交表

    题目链接:https://uva.onlinejudge.org/external/108/10820.pdf 题意: 对于两个整数 x,y,输出一个函数f(x,y),有个选手想交表,但是,表太大,需 ...

  5. 火车进出站(POJ1363)

    题目链接:http://poj.org/problem?id=1363 #include <stdio.h> #include <stack> using namespace ...

  6. kmeans聚类中的坑 基于R shiny 可交互的展示

    龙君蛋君 2015年5月24日 1.背景介绍 最近公司在用R 建模,老板要求用shiny 展示结果,建模的过程中用到诸如kmean聚类,时间序列分析等方法.由于之前看过一篇讨论kmenas聚类针对某一 ...

  7. miller——rabin

    突然发现自己在线性筛素数中有这个,忘了好久: #include<iostream> #include<cstdio> using namespace std; long lon ...

  8. LIS的string用法

    题目链接 使用的是string里的find函数 stl大法好 #include<iostream> #include<cstdio> #include<cstring&g ...

  9. 使用 W3C Performance 对象通过 R 和 JavaScript 将浏览器内的性能数据可视化[转]

    当考虑 Web 性能指标时,需要关注的目标数字应该是从您自己的用户那里获得的实际用户指标.最常见的方法是利用 Splunk 之类的工具来分析您的机器数据,该工具支持您分析和可视化您的访问权限和错误日志 ...

  10. vim指令,快捷键汇总

    Vim 命令.操作.快捷键全集 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vi ...