上编描述了自定义列表的基本实现功能,本此记录列表的请求过程。
个人比较喜欢对参数进行对象化,方便后续人维护及查看,先上代码:
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 ///21 /// 查询编号 22 /// 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 ///45 /// 默认查询条件(此参数需要进行参数替换,如用户、部门) 46 /// 47 public HfSystemFrame.ParamData.HfKeyValueParam QueryCond 48 { 49 get { return _QueryCond; } 50 set { _QueryCond = value; } 51 } 52 53 private int _CurrentPage = 1; 54 ///55 /// 当前页 56 /// 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 ///78 /// 高级查询条件 79 /// 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 ///95 /// 是否显示标题(默认为No) 96 /// 97 public string ShowPageTitle 98 { 99 get100 {101 if (string.IsNullOrEmpty(_ShowPageTitle))102 _ShowPageTitle = "Yes";103 return _ShowPageTitle;104 }105 set106 {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 else116 {117 _ShowPageTitle = value;118 }119 }120 }121 122 private string _IsReadOnly = "No";123 ///124 /// 是否为只读(不会显示任何操作按钮),只读为Yes,非只读为No,默认为No125 /// 126 public string IsReadOnly127 {128 get129 {130 if (string.IsNullOrEmpty(_IsReadOnly))131 _IsReadOnly = "No";132 return _IsReadOnly;133 }134 set135 {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 else145 {146 _IsReadOnly = value;147 }148 }149 }150 151 private string _QueryOrderby = string.Empty;152 ///153 /// 排序字段(如果为空,默认应用配置字段排序)154 /// 155 public string QueryOrderby156 {157 get { return _QueryOrderby; }158 set159 {160 if (value != _QueryOrderby)161 {162 _QueryOrderby = value ?? "";163 }164 }165 }166 167 private string _QueryModel = "General";168 ///169 /// 列表模式,General(一般)、Dialog(弹出),系统默认为General170 /// 171 public string QueryModel172 {173 get { return _QueryModel; }174 set { _QueryModel = value; }175 }176 177 private string _SelectType = string.Empty;178 ///179 /// 列表选择模式(只有标识为弹出框模式该项才有效),Single(单选)、Multiple(多选)180 /// 181 public string SelectType182 {183 get { return _SelectType; }184 set185 {186 if (QueryModel == "Dialog" && (value != "Single" && value != "Multiple"))187 {188 throw new HfQueryPlatException("查询的参数(SelectType)无效!");189 }190 _SelectType = value;191 }192 }193 194 ///195 /// 是否分页,若不分页,value为No196 /// 197 public string IsTurnPage { get; set; }198 }199 }
代码中将一个列表的基本数据参数列出,并对参数进行了基本的数据校验。
所有的列表请求方式基本相同,只是将编号及参数进行更换,如:
List.aspx?Code=Sys_SDFK3J9F4HG3G324G4G532HG5&Param=XXX&CurrentPage=3
值得要说的是编号命名,必须要无规则!
列表参数如此,表单、流程等也基本这个思路,将参数对象化,方便维护。
【待续】
(欢迎转载,转载请注明:HFun.快速开发平台)