標籤:
主要更新:
1:升級處理機制(js請求由同步變更為非同步)
2:最佳化前端JS:包括API和配置方式。
3:增加InputDialog功能。
4:增遠遠程驗證功能。
5:最佳化許可權安全機制。
6:增加一次請求多個方法的功能。
7:最佳化支援文本資料庫(為了示範Demo,節省我伺服器的資源)
從舊版本升級的注意事項:
Config_Grid表的欄位變更:
viewname欄位,變更為Rules,長度為250。
MergeIndexed,改名為:MergeIndex。
開源地址:
GitHub:https://github.com/cyq1162/Aries
Demo示範:http://aries.cyqdata.com/login.html (已經把Demo掛回自己的VPS,同時用上了文本資料庫)
JS API通用設計思維介紹:1:名稱空間:
AR.DataGrid:動作表格和樹形表格(需要執行個體化)。
AR.Upload:操作檔案上傳(需要執行個體化,如:匯入按鈕(點擊的時候彈出上傳Excel檔案功能))。
AR.Form:動作表單頁面(如普通的編輯或新增頁面)。
AR.Combobox:操作下拉框對象。
AR.Utility:通用工具類:如AR.Utility.Ajax類就在這裡面。
AR.Global:全域對象。
2:通用事件與屬性:
1:對象(包括按鈕)都有$target,擷取JQ對象。
2:對象(包括按鈕)都有isHidden屬性,可以按鈕顯示或隱藏。
3:對象(包括按鈕)都有三個事件(不管是按鈕還是對象的初始化):
onBeforeExecute
onExecute(預設都執行這個)
onAfterExecute
處理時,根據業務,找到對應的對象,處理該事件即可。
4:有些對象有Items屬性(dg.Search.Items、dg.PKColumn.Items、AR.Global.DG.Items)
5:有些對象有add方法。
AR.DataGrid 簡單介紹:1:支援類型(普通表格(datagrid)和樹形表格(treegrid)):2:範例程式碼:
var dg=new AR.DataGrid(objName,tableName,id,type);
//這裡可以控制參數。
dg.bind();//綁定表格
3:呈現的效果:
或者是:(樹形菜單預設是通過右鍵菜單控制操作)
4:表格常用內部對象:
1:dg.ToolArea:包括搜尋(Search)和工具條(ToolBar)。
2:dg.Search:搜尋區
3:dg.ToolBar:按鈕工具條
4:dg.PKColumn:主鍵列區
5:dg.HeaderMenu:列頭右鍵菜單
6:dg.ContextMenu:行資料的右鍵菜單
5:前端JS API編程樣本(結合通用對象通用事件,很容易知道在哪處理你要擴充的事件):
比如:你想在點擊查詢追加條件,那麼代碼就是:
dg.Search.BtnQuery.onBeforeExecute=function(para){在這裡追加條件。}
比如:你想隱藏重設按鈕,那麼代碼是:
dg.Search.BtnReset.isHidden=false;
比如:你想給查詢條件某個框賦值,那麼代碼是:
dg.Search.onAfterExecute=function(para){dg.Search.Items["列名"].val(123);};
也可以在頁面載入後處理:
dg.options={
onLoadSuccess:function(){dg.Search.Items["列名"].val(123);}
}
其它細節,在源碼Demo裡有介紹,這裡就點到為止了。
表單:Input相關的配置介紹:1:遠程驗證資料是否存在:
<input name="UserName" class=‘easyui-validatebox‘ data-options="validType:‘exists[UserName]‘" />
效果:(架構內部隱式的條件參數包括:頁面傳遞的id,AR.Form.tableName)
2:InputDialog
<input name="F4" dialog="Demo_TestA" multiple="true" editable="true" />
單選效果:(第一次運行時,需要配置下表頭,隱藏不需要呈現的列,然後調一個搜尋方塊出來)
多選效果:
選擇後,是個下拉,還可以再小操作:
3:關於下拉框的具體配置,在Demo裡有詳細,所以不詳說,只上一張圖:
配置表頭的配置規則(即由viewname變名的Rules欄位)
效果:
本配置用於控制搜尋區,目前支援$1和$2配置,規則為:
$1:{}處理非下拉:
如果是日期或資料,預設變成區間查詢(如中的F4欄位配置),即預設clone:true,樣本配置:
$1:{title:"my title",width:200,clone:false}
$2:{} 處理下拉:
可設按鈕寬度,是否多選,是否選擇,是否呈現請選擇,是否選擇時引發查詢,樣本配置:
$2:{width:200,height:30,isQuery:false,mutiple:true,defaultitem:false}
AR.Utility.Ajax:一次請求多個方法,返回結果合集:
架構裡的範例程式碼:
$Core.Utility.Ajax.post("GetInitConfig,GetKeyValueConfig", null, null, null, null, function (result) { $Core.Global.Variable = result.GetInitConfig; $Core.Global.Variable.isLoadCompleted = true; $Core.Global.Config = result.GetKeyValueConfig; });
結果集按方法組合成Json返回。
其它:參考架構Demo,或/Web/SysAdmin/系統系統功能的用法:
總結:
1:本版本親自操刀前端API(之前版本的前端是交另一個同事編寫)。
由於操刀前端,最近每天都折騰到深夜3-4點:
2:提升了效能(之前的同步導致介面1-2秒空白的卡,速度體驗感不好)。
3:提升了安全性(之前版本有一定的許可權安全問題)。
4:增強前端使用體驗。
ASP.NET Aries 3.0發布(附帶通用API設計及基本教程介紹)