HFun.快速开发平台(二)=》自定义列表实例(请求参数的处理)

时间:2023-03-08 20:23:29
HFun.快速开发平台(二)=》自定义列表实例(请求参数的处理)

上编自定义列表描述了自定义列表的基本实现功能,本此记录列表的请求过程。

个人比较喜欢对参数进行对象化,方便后续人维护及查看,先上代码:

 /*********************************************************
* 开发人员:QLQ
* 创建时间:
* 描述说明:保存列表页面加载时的URL参数信息,并提交给底层进行页面数据加载工作
* 更改历史:2016-12-15 优化数据验证
*
* *******************************************************/ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace HfQueryFrame.Func
{
[Serializable]
public class HfRequestParam
{
private string _QueryCode = string.Empty;
/// <summary>
/// 查询编号
/// </summary>
public string QueryCode
{
get
{
if (string.IsNullOrEmpty(_QueryCode))
{
throw new HfQueryPlatException("查询编号(QueryCode)参数无效!");
}
return _QueryCode;
}
set
{
if (string.IsNullOrEmpty(value))
{
throw new HfQueryPlatException("查询编号(QueryCode)参数无效!");
}
_QueryCode = value;
}
} private HfSystemFrame.ParamData.HfKeyValueParam _QueryCond = null;
/// <summary>
/// 默认查询条件(此参数需要进行参数替换,如用户、部门)
/// </summary>
public HfSystemFrame.ParamData.HfKeyValueParam QueryCond
{
get { return _QueryCond; }
set { _QueryCond = value; }
} private int _CurrentPage = ;
/// <summary>
/// 当前页
/// </summary>
public int CurrentPage
{
get { return _CurrentPage; }
set
{
if (value != _CurrentPage)
{
if (value < )
{
value = ;
}
else
{
_CurrentPage = value;
}
}
}
} private Func.HfQueryCriteria _AdvQueryString;
/// <summary>
/// 高级查询条件
/// </summary>
public Func.HfQueryCriteria AdvQueryString
{
get
{
if (_AdvQueryString == null)
{
_AdvQueryString = new HfQueryCriteria("");
}
return _AdvQueryString;
}
set { _AdvQueryString = value; }
} private string _ShowPageTitle = "Yes";
/// <summary>
/// 是否显示标题(默认为No)
/// </summary>
public string ShowPageTitle
{
get
{
if (string.IsNullOrEmpty(_ShowPageTitle))
_ShowPageTitle = "Yes";
return _ShowPageTitle;
}
set
{
if (string.IsNullOrEmpty(value))
{
_ShowPageTitle = "No";
}
else if (value != "Yes" && value != "No")
{
throw new HfQueryPlatException("查询参数(ShowPageTitle)无效!");
}
else
{
_ShowPageTitle = value;
}
}
} private string _IsReadOnly = "No";
/// <summary>
/// 是否为只读(不会显示任何操作按钮),只读为Yes,非只读为No,默认为No
/// </summary>
public string IsReadOnly
{
get
{
if (string.IsNullOrEmpty(_IsReadOnly))
_IsReadOnly = "No";
return _IsReadOnly;
}
set
{
if (string.IsNullOrEmpty(value))
{
_IsReadOnly = "No";
}
else if (value != "Yes" && value != "No")
{
throw new HfQueryPlatException("查询的参数(IsReadOnly)无效!");
}
else
{
_IsReadOnly = value;
}
}
} private string _QueryOrderby = string.Empty;
/// <summary>
/// 排序字段(如果为空,默认应用配置字段排序)
/// </summary>
public string QueryOrderby
{
get { return _QueryOrderby; }
set
{
if (value != _QueryOrderby)
{
_QueryOrderby = value ?? "";
}
}
} private string _QueryModel = "General";
/// <summary>
/// 列表模式,General(一般)、Dialog(弹出),系统默认为General
/// </summary>
public string QueryModel
{
get { return _QueryModel; }
set { _QueryModel = value; }
} private string _SelectType = string.Empty;
/// <summary>
/// 列表选择模式(只有标识为弹出框模式该项才有效),Single(单选)、Multiple(多选)
/// </summary>
public string SelectType
{
get { return _SelectType; }
set
{
if (QueryModel == "Dialog" && (value != "Single" && value != "Multiple"))
{
throw new HfQueryPlatException("查询的参数(SelectType)无效!");
}
_SelectType = value;
}
} /// <summary>
/// 是否分页,若不分页,value为No
/// </summary>
public string IsTurnPage { get; set; }
}
}

代码中将一个列表的基本数据参数列出,并对参数进行了基本的数据校验。

所有的列表请求方式基本相同,只是将编号及参数进行更换,如:

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

值得要说的是编号命名,必须要无规则!

列表参数如此,表单、流程等也基本这个思路,将参数对象化,方便维护。

【待续】

(欢迎转载,转载请注明:HFun.快速开发平台)