HFun.快速開發平臺(四)=》自定義列表實例(請求參數的處理)

上編自定義列表描述了自定義列表的基本實現功能,本此記錄列表的請求過程。

個人比較喜歡對參數進行對象化,方便後續人維護及查看,先上代碼:

  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 }
View Code

代碼中將一個列表的基本數據參數列出,並對參數進行了基本的數據校驗。

所有的列表請求方式基本相同,只是將編號及參數進行更換,如:

List.aspx?Code=Sys_SDFK3J9F4HG3G324G4G532HG5&Param=XXX&CurrentPage=3

值得要說的是編號命名,必須要無規則!

列表參數如此,表單、流程等也基本這個思路,將參數對象化,方便維護。

【待續】

(歡迎轉載,轉載請註明:HFun.快速開發平臺)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章