上編自定義列表描述了自定義列表的基本實現功能,本此記錄列表的請求過程。
個人比較喜歡對參數進行對象化,方便後續人維護及查看,先上代碼:
1 /********************************************************* 2 * 開發人員:QLQ 3 * 創建時間: 4 * 描述說明:保存列表頁面加載時的URL參數信息,並提交給底層進行頁面數據加載工作 5 * 更改歷史:2016-12-15 優化數據驗證 6 * 7 * *******************************************************/ 8 9 using System; 10 using System.Collections.Generic; 11 using System.Linq; 12 using System.Text; 13 14 namespace HfQueryFrame.Func 15 { 16 [Serializable] 17 public class HfRequestParam 18 { 19 private string _QueryCode = string.Empty; 20 /// <summary> 21 /// 查詢編號 22 /// </summary> 23 public string QueryCode 24 { 25 get 26 { 27 if (string.IsNullOrEmpty(_QueryCode)) 28 { 29 throw new HfQueryPlatException("查詢編號(QueryCode)參數無效!"); 30 } 31 return _QueryCode; 32 } 33 set 34 { 35 if (string.IsNullOrEmpty(value)) 36 { 37 throw new HfQueryPlatException("查詢編號(QueryCode)參數無效!"); 38 } 39 _QueryCode = value; 40 } 41 } 42 43 private HfSystemFrame.ParamData.HfKeyValueParam _QueryCond = null; 44 /// <summary> 45 /// 默認查詢條件(此參數需要進行參數替換,如用戶、部門) 46 /// </summary> 47 public HfSystemFrame.ParamData.HfKeyValueParam QueryCond 48 { 49 get { return _QueryCond; } 50 set { _QueryCond = value; } 51 } 52 53 private int _CurrentPage = 1; 54 /// <summary> 55 /// 當前頁 56 /// </summary> 57 public int CurrentPage 58 { 59 get { return _CurrentPage; } 60 set 61 { 62 if (value != _CurrentPage) 63 { 64 if (value < 1) 65 { 66 value = 1; 67 } 68 else 69 { 70 _CurrentPage = value; 71 } 72 } 73 } 74 } 75 76 private Func.HfQueryCriteria _AdvQueryString; 77 /// <summary> 78 /// 高級查詢條件 79 /// </summary> 80 public Func.HfQueryCriteria AdvQueryString 81 { 82 get 83 { 84 if (_AdvQueryString == null) 85 { 86 _AdvQueryString = new HfQueryCriteria(""); 87 } 88 return _AdvQueryString; 89 } 90 set { _AdvQueryString = value; } 91 } 92 93 private string _ShowPageTitle = "Yes"; 94 /// <summary> 95 /// 是否顯示標題(默認爲No) 96 /// </summary> 97 public string ShowPageTitle 98 { 99 get 100 { 101 if (string.IsNullOrEmpty(_ShowPageTitle)) 102 _ShowPageTitle = "Yes"; 103 return _ShowPageTitle; 104 } 105 set 106 { 107 if (string.IsNullOrEmpty(value)) 108 { 109 _ShowPageTitle = "No"; 110 } 111 else if (value != "Yes" && value != "No") 112 { 113 throw new HfQueryPlatException("查詢參數(ShowPageTitle)無效!"); 114 } 115 else 116 { 117 _ShowPageTitle = value; 118 } 119 } 120 } 121 122 private string _IsReadOnly = "No"; 123 /// <summary> 124 /// 是否爲只讀(不會顯示任何操作按鈕),只讀爲Yes,非只讀爲No,默認爲No 125 /// </summary> 126 public string IsReadOnly 127 { 128 get 129 { 130 if (string.IsNullOrEmpty(_IsReadOnly)) 131 _IsReadOnly = "No"; 132 return _IsReadOnly; 133 } 134 set 135 { 136 if (string.IsNullOrEmpty(value)) 137 { 138 _IsReadOnly = "No"; 139 } 140 else if (value != "Yes" && value != "No") 141 { 142 throw new HfQueryPlatException("查詢的參數(IsReadOnly)無效!"); 143 } 144 else 145 { 146 _IsReadOnly = value; 147 } 148 } 149 } 150 151 private string _QueryOrderby = string.Empty; 152 /// <summary> 153 /// 排序字段(如果爲空,默認應用配置字段排序) 154 /// </summary> 155 public string QueryOrderby 156 { 157 get { return _QueryOrderby; } 158 set 159 { 160 if (value != _QueryOrderby) 161 { 162 _QueryOrderby = value ?? ""; 163 } 164 } 165 } 166 167 private string _QueryModel = "General"; 168 /// <summary> 169 /// 列表模式,General(一般)、Dialog(彈出),系統默認爲General 170 /// </summary> 171 public string QueryModel 172 { 173 get { return _QueryModel; } 174 set { _QueryModel = value; } 175 } 176 177 private string _SelectType = string.Empty; 178 /// <summary> 179 /// 列表選擇模式(只有標識爲彈出框模式該項纔有效),Single(單選)、Multiple(多選) 180 /// </summary> 181 public string SelectType 182 { 183 get { return _SelectType; } 184 set 185 { 186 if (QueryModel == "Dialog" && (value != "Single" && value != "Multiple")) 187 { 188 throw new HfQueryPlatException("查詢的參數(SelectType)無效!"); 189 } 190 _SelectType = value; 191 } 192 } 193 194 /// <summary> 195 /// 是否分頁,若不分頁,value爲No 196 /// </summary> 197 public string IsTurnPage { get; set; } 198 } 199 }
代碼中將一個列表的基本數據參數列出,並對參數進行了基本的數據校驗。
所有的列表請求方式基本相同,只是將編號及參數進行更換,如:
List.aspx?Code=Sys_SDFK3J9F4HG3G324G4G532HG5&Param=XXX&CurrentPage=3
值得要說的是編號命名,必須要無規則!
列表參數如此,表單、流程等也基本這個思路,將參數對象化,方便維護。
【待續】
(歡迎轉載,轉載請註明:HFun.快速開發平臺)