假设有这样的场景,使用easyUI的可编辑表格时,有些内容是通过其中一个编辑器编辑完后到后台取数据,返回数据后插入到部分编辑器中,为编辑器设置值可以用以下的方法
function setGridFieldsValue(gridID,rowIndex,fieldArr,rowData,focusField){
//gridID 是表格的ID,rowIndex是当前编辑行的索引,fieldArr是要插入值的字段数组,rowData是要插入的数据(json对象),focusField是插入数据后,焦点在哪个字段上
var editors = $("#"+gridID).datagrid("getEditors",rowIndex),
editorLength = editors.length;
for(var j=0; j<fieldArr.length; j++){
for(var i=0; i<editorLength; i++){
var ed = editors[i];
if(ed.field == fieldArr[j]){
$(ed.target)[ed.type]("setValue",rowData[fieldArr[j]]);
}else if(ed.field == focusField){
$(ed.target.siblings("span").children("input")).focus();
}
}
}
$("#"+gridID).datagrid('clearSelections');
}
完整示例代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>可编辑表格编辑器设置值</title>
<link rel="stylesheet" type="text/css" href="../bootstrap/css/bootstrap.css"/>
<link rel="stylesheet" type="text/css" href="../easyui1.5/themes/bootstrap/easyui.css"/>
<link rel="stylesheet" type="text/css" href="../easyui1.5/themes/icon.css"/>
<script src="../easyui1.5/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../easyui1.5/jquery.easyui.min.js" type="text/javascript" charset="utf-8"></script>