SNF快速開發平臺MVC-自由排序組件
1. 自由排序功能使用
在一些需要排序優先級的數據進行調整處理,如民族數據,在北方實施的時候漢族比較多,希望把漢族放在第一位。在蒙古實施項目時,蒙古族人最多把蒙古族放在第一選擇位。
1.1. 效果展示
圖 1.1
1.2. 調用說明
1.2.1. 定義自由排序模型
this.freeSort = new snf.freeSortOptionsModel();//自由排序模型
self.freeSort.set({
grid: self.grid,
NameSpace: "Tony.DEMO.Business",
TableName: "DemoSingleTable",
sortField: "SortCode",
flagDataBase: false
});
位置:此方法調用應在在 定義this.grid對象之後,否則會無法識別
1.2.2. 參數說明
grid:當前需要排序的表格對象
NameSpace:service層的類的命名空間
TableName:數據表名稱
sortField:排序字段(默認SortCode)
flagDataBase:每次移動之後,是否存入數據庫(true表示移動後即存入數據庫,false表示僅改變顯示,需統一進行保存,默認true)
ProjectNameSpace:service層的類所在項目的數據集,默認等於NameSpace(主要用於命名空間和所在項目不同時的情況)
1.2.3. 上下移動的事件綁定
snf.gridUpMove(self.freeSort);上移
snf. gridDownMove (self.freeSort);下移
snf. gridFirstMove (self.freeSort);最上
snf. gridLastMove (self.freeSort);最下
如圖,圖中checkInserted事件為校驗行編輯是否結束,如果flagDataBase=true則不需要此事件
圖 1.2
1.2.4. 行編輯統一保存時模型調用
在定義了datagrid對象(即對表格的屬性進行定義和綁定的對象)和自由排序模型之後,增加一個自動比較表格的現在內容與初始值,從而獲取改變行的模型:
this.gridMatch = new snf.matchGridViewModel(self.grid, self.freeSort);
需在datagrid定義的對象中的onLoadSuccess事件增加self.gridMatch.setDefault();
重寫saveClick事件,post.list 改為post.list = self.gridMatch.getChanges(self.setting.postListFields);
如圖
圖 1.3
圖中this.gridMatch方法就是定義了匹配改變行的模型,this.saveClick中的第三行則是調用了讀取改變行的數據。this.gridMatch方法應當在表格的對象和自由排序模型定義完成後再調用,否則會無法使用
1.2.5. 註意事項
註意各個方法的順序不能顛倒,定義datagrid對象在最前,其次是定義自由排序模型freeSortOptionsModel,然後定義上移下移事件,再然後定義自動比較內容獲取改變行的模型matchGridViewModel,最後才是保存事件行編輯時,新增行是沒有排序碼的,所以當前頁面如果有新增數據的話就不能允許進行排序,要保存後才可以允許進行排序使用自由排序時請不要使用分頁
1.2.6. demo樣例
程序路徑:
/DEMO/DemoSingleTableFreeSort/ DemoSingleTableFreeSort
可在程序中按照此路徑增加菜單查看
SNF快速開發平臺MVC-自由排序組件