1. 程式人生 > >SNF快速開發平臺MVC-自由排序組件

SNF快速開發平臺MVC-自由排序組件

效果 選擇 viewmodel .get 無法 菜單 sort business sin

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-自由排序組件