在easyUi 的datagrid 的 onLoadSuccess:function(data) 函數 中添加即可:
onLoadSuccess:function(data)
{
if(firstLoad)
{
//第一次加載成功後,保存原始數據值
orignalData = $.extend(true,{},data);
}
//彙總單日填報工作量
reCalDayTotal();
// 重要! 顯示全部編輯狀態並綁定事件監聽
$.each(data.rows, function(id,rowData){
//任務完成100%, 並且已審覈通過,不能編輯
if(rowData && rowData.status && (rowData.status=='TASK_ASSIGNER_AUDITED' || rowData.status=='TASK_MONITOR_AUDITED') && rowData.finishRate == 100)
{
return true;
}
var rowIndex = $('#workloadTable').datagrid('getRowIndex', rowData);
$('#workloadTable').datagrid('beginEdit', rowIndex);
// 重要! 重新設置百分比填報範圍
var columnOption = $('#workloadTable').datagrid('getColumnOption',"workRate");
columnOption.editor.options.min = rowData.minRate;
columnOption.editor.options.max = rowData.maxRate;
var editors = $('#workloadTable').datagrid('getEditors', rowIndex);
var workRateEditor = editors[0]; // 百分比編輯框
var workTimeEditor = editors[1]; // 工時編輯框
var descEditor = editors[2]; // 完成情況編輯框
var delEditor = editors[3]; // 刪除按鈕
/***************************** 監聽輸入框值變化 設置 結束**************************************/
// 百分比編輯框綁定change方法
workRateEditor.target.bind('change', function()
{
//將本次修改的值更新到rowData的相應列數據中
rowData[workRateEditor.field] = $(this).val();
});
// 工時編輯框綁定change方法
workTimeEditor.target.bind('change', function()
{
//將本次修改的值更新到rowData的相應列數據中
rowData[workTimeEditor.field] = $(this).val();
$(this).numberbox("fix");
reCalDayTotal();
});
//增加完成情況字數輸入限制
descEditor.target.bind("keyup",function()
{
return countChar($(this));
}).bind("change", function()
{
return countChar($(this));
});
});
}
在這段代碼本來很長,我省略了一些,其中綁定了很多事件和監聽,還有每行的相關樣式等。