在datagrid里当点击确认后需更新datagrid并将按钮变为已确认状态,并且当websocket里收到的消息发生变化时也要实时更新datagrid
方法:使用变量监听
当点击确认按钮时执行如下的函数,通过ajax将该行的id传到后端,当后端返回success:true时再发送websocket消息
function confirmAlert(id,nodeId){
$.ajax({
url: "/admin/index/alertAck",
type: "post",
cache: false,
async: false, //必须发同步请求
dataType: "json",
data:'id='+id+'&usr='+username,
success: function (data) {
var data=JSON.parse(data);
if(data.success){
websocket.send('016@updateAlerts');
}else{
$.messager.alert('warning', '确认数据失败!');
}
},
error: function (e) {
$.messager.alert('warning', '确认数据失败!');
}
});
}
然后在websocket处进行变量监听,若发生变化则更新datagrid
if(mess.data){
alertMess=mess.data;
var data={alertMess:0};
var lastvalue=data.alertMess;
Object.defineProperty(data,"alertMess",{
set:function(value){
alertMess=value;
if(lastvalue!==alertMess){
if(isselect!=null){
$("#alertMessage").datagrid({
data:alertMess[isselect].alert
});
$("#alertMessage").datagrid('reload');
}
}
}
})
}
data.alertMess=alertMess;
};