/** *清空指定表單中的內容,參數為目標form的id *注:在使用Jquery EasyUI的彈出窗口錄入新增內容時,每次打開必須清空上次輸入的歷史 *數據,此時通常采用的方法是對每個輸入組件進行置空操作:$("#name").val(""),這樣做, *當輸入組件比較多時會很繁瑣,產生的js代碼很長,這時可以將所有的輸入組件放入個form表單 *中,然后調用以下方法即可。 * *@param formId將要清空內容的form表單的id */ function resetContent(formId) { var clearForm = document.getElementById(formId); if (null != clearForm && typeof (clearForm) != "undefined") { clearForm.reset(); } } /** *刷新DataGrid列表(適用於Jquery Easy Ui中的dataGrid) *注:建議采用此方法來刷新DataGrid列表數據(也即重新加載數據),不建議直接使用語句 *$('#dataTableId').datagrid('reload');來刷新列表數據,因為采用后者,如果日后 *在修改項目時,要在系統中的所有刷新處進行其他一些操作,那么你將要修改系統中所有涉及刷新 *的代碼,這個工作量非常大,而且容易遺漏;但是如果使用本方法來刷新列表,那么對於這種修 *該需求將很容易做到,而去不會出錯,不遺漏。 * *@paramdataTableId將要刷新數據的DataGrid依賴的table列表id */ function flashTable(dataTableId) { $('#' + dataTableId).datagrid('reload'); } /** *取消DataGrid中的行選擇(適用於Jquery Easy Ui中的dataGrid) *注意:解決了無法取消"全選checkbox"的選擇,不過,前提是必須將列表展示 *數據的DataGrid所依賴的Table放入html文檔的最全面,至少該table前沒有 *其他checkbox組件。 * *@paramdataTableId將要取消所選數據記錄的目標table列表id */ function clearSelect(dataTableId) { $('#' + dataTableId).datagrid('clearSelections'); //取消選擇DataGrid中的全選 $("input[type='checkbox']").eq(0).attr("checked", false); } /** *關閉Jquery EasyUi的彈出窗口(適用於Jquery Easy Ui) * *@paramdialogId將要關閉窗口的id */ function closeDialog(dialogId) { $('#' + dialogId).dialog('close'); } /** *自適應表格的寬度處理(適用於Jquery Easy Ui中的dataGrid的列寬), *注:可以實現列表的各列寬度跟着瀏覽寬度的變化而變化,即采用該方法來設置DataGrid *的列寬可以在不同分辨率的瀏覽器下自動伸縮從而滿足不同分辨率瀏覽器的要求 *使用方法:(如:{field:'ymName',title:'編號',width:fillsize(0.08),align:'center'},) * *@parampercent當前列的列寬所占整個窗口寬度的百分比(以小數形式出現,如0.3代表30%) * *@return通過當前窗口和對應的百分比計算出來的具體寬度 */ function fillsize(percent) { var bodyWidth = document.body.clientWidth; return (bodyWidth - 90) * percent; } /** * 獲取所選記錄行(單選) * * @paramdataTableId目標記錄所在的DataGrid列表的table的id * @paramerrorMessage 如果沒有選擇一行(即沒有選擇或選擇了多行)的提示信息 * * @return 所選記錄行對象,如果返回值為null,或者"null"(有時瀏覽器將null轉換成了字符串"null")說明沒有 *選擇一行記錄。 */ function getSingleSelectRow(dataTableId, errorMessage) { var rows = $('#' + dataTableId).datagrid('getSelections'); var num = rows.length; if (num == 1) { return rows[0]; } else { $.messager.alert('提示消息', errorMessage, 'info'); return null; } } /** * 在DataGrid中獲取所選記錄的id,多個id用逗號分隔 * 注:該方法使用的前提是:DataGrid的idField屬性對應到列表Json數據中的字段名必須為id * @paramdataTableId目標記錄所在的DataGrid列表table的id * * @return 所選記錄的id字符串(多個id用逗號隔開) */ function getSelectIds(dataTableId, noOneSelectMessage) { var rows = $('#' + dataTableId).datagrid('getSelections'); var num = rows.length; var ids = null; if (num < 1) { if (null != noOneSelectMessage) $.messager.alert('提示消息', noOneSelectMessage, 'info'); return null; } else { for (var i = 0; i < num; i++) { if (null == ids || i == 0) { ids = rows[i].id; } else { ids = ids + "," + rows[i].id; } } return ids; } } /** *刪除所選記錄(適用於Jquery Easy Ui中的dataGrid)(刪除的依據字段是id) *注:該方法會自動將所選記錄的id(DataGrid的idField屬性對應到列表Json數據中的字段名必須為id) *動態組裝成字符串,多個id使用逗號隔開(如:1,2,3,8,10),然后存放入變量ids中傳入后台,后台 *可以使用該參數名從request對象中獲取所有id值字符串,此時在組裝sql或者hql語句時可以采用in *關鍵字來處理,簡介方便。 *另外,后台代碼必須在操作完之后以ajax的形式返回Json格式的提示信息,提示的json格式信息中必須有一個 *message字段,存放本次刪除操作成功與失敗等一些提示操作用戶的信息。 * *@paramdataTableId將要刪除記錄所在的列表table的id *@paramrequestURL與后台服務器進行交互,進行具體刪除操作的請求路徑 *@paramconfirmMessage 刪除確認信息 */ function deleteNoteById(dataTableId, requestURL, confirmMessage) { if (null == confirmMessage || typeof (confirmMessage) == "undefined" || "" == confirmMessage) { confirmMessage = "確定刪除所選記錄?"; } var rows = $('#' + dataTableId).datagrid('getSelections'); var num = rows.length; var ids = null; if (num < 1) { $.messager.alert('提示消息', '請選擇你要刪除的記錄!', 'info'); } else { $.messager.confirm('確認', confirmMessage, function (r) { if (r) { for (var i = 0; i < num; i++) { if (null == ids || i == 0) { ids = rows[i].id; } else { ids = ids + "," + rows[i].id; } } $.getJSON(requestURL, { "ids": ids }, function (data) { if (null != data && null != data.message && "" != data.message) { $.messager.alert('提示消息', data.message, 'info'); flashTable(dataTableId); } else { $.messager.alert('提示消息', '刪除失敗!', 'warning'); } clearSelect(dataTableId); }); } }); } }