jQuery MiniUI

标题: e.record和e.record._state输出的值不一致! [打印本页]

作者: joyoes    时间: 2021-10-19 23:10:37     标题: e.record和e.record._state输出的值不一致!



  1. //行改变时提交数据到服务器
  2.     grid.on("selectionchanged", function (e) {
  3.         console.log('行改变了!')
  4.         saveGridData()

  5.     })
  6.     grid.on("cellcommitedit", function (e) {   
  7.         //var modefied=grid.getChanges()
  8.         console.log(e.record)//"modified"
  9.         console.log(e.record._state)
  10.         if (e.record._state=="modified"&&e.oldValue!=e.value) {
  11.             if (e.column.vtype=='required'&&e.value=='') {
  12.                 console.log('该单元格不能为空')
  13.                 e.cancel
  14.                 return
  15.             }
  16.             var requestData={
  17.                 update_row_id:e.record.id
  18.             }
  19.             requestData['field_code']=e.field
  20.             requestData['old_value']=e.oldValue
  21.             requestData['new_value']=e.value
  22.             sendData({url:getEleUrl(editJbBtn),data:requestData})
  23.         }
  24.     })
复制代码
[attach]13406[/attach]
在cellcommitedit事件中,当我修改单元格内的数据之后,程序执行了上面的输出上面的两个值,但为何结果会不一样的呢?这是什么原因造成的呀?
使用这个grid.getChanges()也是为空,奇怪的很呢!是我哪里写错了吗、














作者: felt    时间: 2021-10-20 09:34:24

编辑结束后,我们才处理_state
除非你这行是以前就编辑过,才可能获取到modeified
作者: joyoes    时间: 2021-10-20 13:24:50

本帖最后由 joyoes 于 2021-10-20 13:27 编辑
felt 发表于 2021-10-20 09:34
编辑结束后,我们才处理_state
除非你这行是以前就编辑过,才可能获取到modeified ...

意思是第1次编辑完成时,cellcommitedit先执行后,再执行cellendedit事件,在cellendedit事件中才处理_state,我这个理解是对的吗?
作者: felt    时间: 2021-10-20 13:48:21

joyoes 发表于 2021-10-20 13:24
意思是第1次编辑完成时,cellcommitedit先执行后,再执行cellendedit事件,在cellendedit事件中才处理_sta ...

不是在什么事件中处理的,事件只是一个时机激发。
在endedit前处理




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2