EasyUI 雜記(20170424更新)

眉角太多了 就看到就記

datalist checkBox 奇怪問題

有一個在Html內已建好 幾個選項
但是沒有用 checked 欄位
事後用 $(xx).datalist("checkRow",n); 去點選
用  $(xx).datagrid('getData'); 取全部資料 但沒有 checked 的欄位判斷
只能用 $(xx).datagrid('getChecked'); 抓出 有 checked 的欄位集合
他沒有取出單個看的指令
這還好 繞個彎也能解決

另一種方式 是一開始載入資料就給 checked 欄位
{ "id": i, "text": val.snum, "checked": ckf }
資料表示的確跑出來是沒錯

但是一樣 取值問題很大
用  $(xx).datagrid('getData'); 取全部資料 這次有 checked 的欄位
但是是維持載入資料時的狀態 不會隨點選變化

用 $(xx).datagrid('getChecked'); 更扯 是空集合 害我一值懷疑是我哪裡key錯了
挖哩勒 怎麼取值? 射後不理?

最後只好加事件觸發處理
  onCheck: function (Index, rowData) {
            if (rowData) { rowData.checked = true; }
        },
        onUncheck: function (Index, rowData) {
            if (rowData) {  rowData.checked = false; }
        }

自己改欄位值
最後用  $(xx).datagrid('getData'); 掃 checked 欄位

textbox

是可以用原本 Html textarea 但 EUI 的功能比較多 所以用
問題來了  大小尺寸 背景色 都沒那好變
大小尺寸 只能設在一開始的 html 或是用 java指定
  $("#Memo_open").textbox({
       width:'100%',
        height:'100%',
       });
在css變是不會理你的
那背景色呢?
只能用 $("#Memo_open").textbox("textbox").addClass("myclass");
然後在css變

子視窗

一開始在裏頭設
<div id="Quswin" class="easyui-window" title="" data-options="iconCls:'icon-save',modal:true,collapsible:false,minimizable:false,closed:true">
到時用 $('#Quswin').window('open'); 就可以開
但問題時一開始進網頁 會感覺一閃而過 感覺不好
所以可以用
 <div id="other" style="display:none"> 包起來 就不會了

改變主題皮膚 

我是改 App_Start\BundleConfig.cs
 bundles.Add(new StyleBundle("~/_JEui/easyui").Include(
                                      "~/_JEui/1.5.1/themes/icon.css",
                                      "~/_JEui/1.5.1/themes/metro-red/easyui.css" //變更後
                      //"~/_JEui/1.5.1/themes/default/easyui.css" //原本
                      ));
一改全都會變

ToolBar & ContextMenu:

dataGrid dataList 都有加入 Toolbar 功能
本想偷懶 將一個 ToolBar 丟給好幾個 dataList 用 證實不行
ContextMenu: 卻是可以這樣玩

datalist  刪除跟排序問題

這物件是繼承 datagrid
增加一筆是用 appendRow
AddObj.datalist("appendRow", rowSel);
刪除很奇怪 不是這樣用 是傳 Index 給他殺
本以為是 id 可是並不是 需另外取得
 var ind= $(Lwin).datalist("getRowIndex", rowSel);
  $(Lwin).datalist("deleteRow", ind);

殺完新增 又有個 排序問題
他是有 sort 但是試老半天 都不成功
好像是要配合後端處理...這就麻煩了
我只是當個暫存的 List 使用
所以用偷吃步 用 javascript 去排序
javascript 陣列排序 直接 .sort() 就好
但物件結構怎辦?
經查後有解
像 datalist 有 id 跟 text 兩欄
如果是排字
Sobj = Sobj.sort(function (a, b) { return a.id - b.id; });//比數字
排字串就用
Sobj = Sobj.sort(function (a, b) { return a.text > b.text ? 1 : -1; });//比字串
所以 datalist 先用
Sobj = AddObj.datalist("getData").rows; 抓資料出來
一定要加 .rows 才會抓到原本的 Json Data
用VS2015 除錯真是好用  是用vs2015 看出來的 不然查死
然後再擺回去就OK
  AddObj.datalist("loadData", dObj);




















留言

熱門文章