datagrid editor 上、下、回车键自定义

1. datagrid editor取值/赋值:


//以numberbox为例

//1. 取值

vared=$('#cjlr_dg').datagrid('getEditor', {index:index,field:field});

varpscj_oldValue=$(ed.target).numberbox('getValue');

//2. 赋值

$(ed.target).numberbox('setValue',0);


2. 一个完整的成绩表格编辑功能;编辑完成后将最新的值存储到后台;

 · 如果之前有值,清空之后,回车,将显示之前的值;

 ·  如果之前无值,清空之后,回车,将显示“为录入”;

 ·  如果之前有值,改变值之后,回车,将显示最新改变的值;

 ·  用到的小知识点:

(1)、将数值转换为整数:parseInt(zcj)

(2)、将数值转换为带一位小数的数值:parseFloat(zcj).toFixed(1)

(3)、三元表达式: 条件 ? 条件成立执行此语句 :条件不成立执行此语句;

(4)、字符串截取:str.subString(1,10); - 截取的为str的索引值从1到9之间的字符(索引值是从0开始的);

(5)、将字符转为数组:str.split(",");  - 以逗号为分割点,转换为数组;

//datagrid editor - 点击上键表示“+1”,点击下键表示“-1”,点击回车表示“编辑完成”;

//定义命名空间对象,因为页面较多,避免冲突

nameSpace.ns("CJGL.cjlr");

CJGL.cjlr = {

    //定义此命名空间对象中的所有全局变量

bl: {

cjlr_grade_Name: '',

cjlr_grade_value: 0

},

init: function(){//初始化函数

var dg = $('#cjlr_dg').datagrid({//给datagrid组件赋值

url: "/cjlrxsxx/getStudents",

queryParams: { ... },

    onLoadSuccess: function(data){ ... },

onClickCell: function(index,field,value){//当点击datagrid editor中的单元格时触发此事件

      //获取特定的编辑器,options参数有2个属性:index:行索引。field:字段名。

var ed = $('#cjlr_dg').datagrid('getEditor', {index:index,field:field});

//获取编辑框的值

var pscj_oldValue = $(ed.target).numberbox('getValue');

//将编辑框的字段名存储到全局变量中

CJGL.cjlr.bl.cjlr_grade_Name = field;

//获取到编辑框的值是空的还是有数值,空的的话将“未录入”存入变量中,非空将获取到的编辑框的值存入变量中(当键盘未做任何编辑,将内容清空的时候用到此处变量)

pscj_oldValue == "" ? CJGL.cjlr.bl.cjlr_grade_value = "未录入" : CJGL.cjlr.bl.cjlr_grade_value = pscj_oldValue;

//键盘上/下/enter事件触发

$('.datagrid-editable .textbox,.datagrid-editable .datagrid-editable-input,.datagrid-editable .textbox-text').bind('keydown', function(e){

var code = e.keyCode || e.which;

ed = $('#cjlr_dg').datagrid('getEditor', {index:index,field:field});

//获取编辑框的值;

pscj_oldValue = $(ed.target).numberbox('getValue');

CJGL.cjlr.bl.cjlr_grade_Name = field;

pscj_oldValue == "" ? CJGL.cjlr.bl.cjlr_grade_value = "未录入" : CJGL.cjlr.bl.cjlr_grade_value = pscj_oldValue;

if(code == 13){//回车键 - 结束编辑

$('#cjlr_dg').datagrid('acceptChanges');

$('#cjlr_dg').datagrid('endEdit', index);

}else if(code == 38){//上键 - 加1

if(!pscj_oldValue){

$(ed.target).numberbox('setValue',0);

pscj_oldValue = $(ed.target).numberbox('getValue');

}

var newValue_cj = parseInt(pscj_oldValue) + 1;

$(ed.target).numberbox('setValue',newValue_cj);

return false;

}else if(code == 40){//下键 - 减1

var newValue_cj = parseInt(pscj_oldValue) - 1;

$(ed.target).numberbox('setValue',newValue_cj);

return false;

}

});

},

onAfterEdit: function(index,row,changes){//结束编辑

        CJGL.cjlr.bl.cjlrxsxxId = row.openid;

if(JSON.stringify(changes).length >2){//改变了值

var changeValue = JSON.stringify(changes);

var changeName = changeValue.substring(1, changeValue.length-1).split(":")[0].replace(/\"/g, "");

var changeText = changeValue.substring(1, changeValue.length-1).split(":")[1].replace(/\"/g, "");

if(changeText.length == 0){//录入值为空 - 填入"未录入"或之前数值

row[CJGL.cjlr.bl.cjlr_grade_Name] = CJGL.cjlr.bl.cjlr_grade_value;

//更新表格

$('#cjlr_dg').datagrid('updateRow',{

index: index,

row: row

});

$('#cjlr_dg').datagrid('refreshRow', index);

}else{//改变的值为非空,有数值

//是否保留一位小数,来判断单元格的值的格式;

row.sfblywxs == 1 ? (row[changeName] = parseFloat(changeText).toFixed(1)) : (row[changeName] = parseInt(changeText));

row.pscj == "未录入" ? (row.sfblywxs == 1 ? row.pscj = 0.0 : row.pscj = 0) : (row.sfblywxs == 1 ? row.pscj = parseFloat(row.pscj) : row.pscj = parseInt(row.pscj));

row.kscj == "未录入" ? (row.sfblywxs == 1 ? row.kscj = 0.0 : row.kscj = 0) : (row.sfblywxs == 1 ? row.kscj = parseFloat(row.kscj) : row.kscj = parseInt(row.kscj));

//总成绩 = 60%的考试成绩 + 40%的平时成绩;

var zcj = row.kscj * 0.6 + row.pscj * 0.4;

row.sfblywxs == 1 ? zcj = parseFloat(zcj).toFixed(1) : zcj = parseInt(zcj);

row.cjzfs = zcj;

//更新修改过的单元行

$('#cjlr_dg').datagrid('updateRow',{

index: index,

row: row

});

$('#cjlr_dg').datagrid('refreshRow', index);

//保存平时成绩/考试成绩

CJGL.cjlr.save(row.pscj, row.kscj);

}

$('#cjlr_dg').datagrid('updateRow',{

index: index,

row: row

});

$('#cjlr_dg').datagrid('refreshRow', index);

//保存平时成绩/考试成绩

if(row.pscj<0 || row.kscj<0){

$.messager.alert('提示信息','请录入正确的成绩分数!');

$('#cjlr_dg').datagrid("reload");

}else{

CJGL.cjlr.save(row.pscj, row.kscj);

}

}

}

});

dg.datagrid('enableCellEditing');//让表格拥有编辑功能;


$(function(){

CJGL.cjlr.init();//调用页面初始化函数;

});

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • 1. 打开新的窗口并传送参数: 传送参数: response.write("window.open('*.aspx...
    682c63a21d97阅读 709评论 0 0
  • **效果图: 引入自定义js:datagridEdit.js这个js中主要实现了一个editCell方法。 定义存...
    全栈未遂工程师阅读 3,458评论 0 4
  • 1、下午苹果妈要带苹果去店里,他要滑滑板车而不坐伞车,这样一定是不行,万一他困了可以在伞车上睡会,可和他说了要带伞...
    d090d5f5944d阅读 151评论 0 1
  • 网上很多版本都是signed模式,这两个都是unsigned模式 实现一: 实现二
    mimikiy阅读 819评论 0 0