最近在用Easy UI+Dapper+MVC4 開發一個財務收款系統,其中就發現一些小問題,供有需要的人參考。
1.EasyUI控件combobox 數據綁定 出現重復請求后台
上代碼:
1 <td class="custom_td_Tip">收款人:</td> 2 <td> 3 <input class="easyui-combobox" name="ReceiptBank_ALL_RemitteeName" id="ReceiptBank_ALL_RemitteeName" style="width:250px;" /> 4 </td>
function Load_RemitteeName(RemitteeName_ID) { $('#'+RemitteeName_ID).combobox({ url: '/Common_Config/ReturnCompany', valueField: 'ID', textField: 'Company_Name', prompt: '選擇對應公司', editable: false }); }
當時真的好奇怪,這樣寫沒問題啊,可combobox卻重復請求,於是在去看EasyUi 文檔http://www.jeasyui.net/plugins/169.html
發現用法不對,代碼標黃的 class="easyui-combobox" 無需再寫,或者 如果想寫 就把請求 直接寫在控件里面。
還有一個小坑,因為系統用到 dialog 彈框 所以每次關閉窗口直接 用close
function Receipt_Bank_Detail(ID, Table_Id) { $('<div style="overflow-x: hidden"></div>').dialog({ id: 'Receipt_Bank_dialog', title: '收據', width: 1000, height: parseInt($(window).height())*0.9,//, closed: false, cache: false, href: '/Receip/Bank_Detail?R=' + Math.random() + "&ID=" + ID + "&Table_Id=" + Table_Id, modal: true, onClose: function () { $(this).dialog('close'); } }); }
后面發現重復打開這個窗口后 ,窗口的數據 一直緩存在里面,造成數據異常,后來了解知道 dialog('close'); 只是隱藏 ,后面改成.dialog('destroy') 銷毀,就沒出現過了。