上编自定义列表描述了自定义列表的基本实现功能,本此记录列表的请求过程。
个人比较喜欢对参数进行对象化,方便后续人维护及查看,先上代码:
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.快速开发平台)