jquery easyui 常見問題解決
/**
*清空指定表單中的內容,參數爲目標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);
});
}
});
}
}
歡迎關注本站公眾號,獲取更多信息