使用Jquery EasyUi常見問題解決方案

來源:互聯網
上載者:User

標籤:項目   關閉   query   計算   字元   關鍵字   put   nes   info   

/**
*清空指定表單中的內容,參數為目標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);
});
}
});
}
}

使用Jquery EasyUi常見問題解決方案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.