在工作中遇到要求在修改了datagrid后存到数据库,不刷新情况下table下显示修改值得问题。
1.修改row值后不从数据库获取动态修改table值,一般用到
var ip = $('#ip').combobox('getValue');
var region = $('#region').combobox('getValue');
var index = index;
$("#id").datagrid("updateRow",{
index:index,
row:{
ip:ip,
region:region
}
});
这样就可以重新复制给row,datagrid加载的table就可以重新显示修改后的值
问题:
1.修改后前门显示的行号发生了变化,比如原来的1编程010 等
原因:easyui的js源码问题。
解决办法:把var index = index 中的index转化成Int类型
即: var index = parseInt(index);
问题解决;
2.原来的行中渲染的按钮不见了
解决办法:重新渲染按钮
$('.editCabinet').linkbutton({ text:'修改', plain:true, iconCls:'icon-edit' });
$('.delCabinet').linkbutton({ text:'删除', plain:true, iconCls:'icon-remove' });
以上问题可能是easyui的bug造成的。
程序中代码:
var rowindex = parseInt($('#index').val());
$('#roleList').datagrid('updateRow',{
index:rowindex,
row:{
machinename : machineName,
mstatus : mStatuspage,
isemail : emailpage,
isbusiness : isBusinesspage,
region : regionpage,
cabinet : cabinetpage,
template_name :modelpage,
remark : remark,
cabinetid : cabinetIDpage,
template_id : modelIDpage
}});
console.log(mStatus,email,isBusiness,region,cabinetID,model);
$('.editCabinet').linkbutton({ text:'修改', plain:true, iconCls:'icon-edit' });
$('.delCabinet').linkbutton({ text:'删除', plain:true, iconCls:'icon-remove' });