这里是指单选,下拉单选
就是html中的<select><option></option></select>
字段 | 类型 | 示例 | 说明 |
---|---|---|---|
args1 | 字符 | [{“name”:”大”,”value”:”1”},{“name”:”小”,”value”:”2”}] | 表示单选的可选值,name是显示 value是值 |
args2 | 字符 | 留空 | 备用 |
args3 | 字符 | -1,0 | 去除某些值的选项,比如去除-1表示的全部等,在enum的时候适用,配置的时候args1为空这个时候,从enum中读取 |
args4 | 字符 | 留空 | 备用 |
对于args1的内容其实有2个版本
[{“name”:”xxx”,”value”:”yyy”}]
[{“name”:”xxx”,”value”:123}]
其实就是value的类型,这个主要由当前字段的类型而定
比如
///<summary>
///单选 一般表示状态,第二个参数表示日类型这个选项将不会显示,被忽略了
///</summary>
[ColumnDataType("mark", "test", "datetype")]
[PasteSelect("[{\"name\":\"日类型\",\"value\":0},{\"name\":\"月类型\",\"value\":1},{\"name\":\"年类型\",\"value\":2}]","0")]
public int DateType { get; set; }
/// <summary>
/// 单选 注意字段类型为string
/// </summary>
[PasteSelects("[{\"name\":\"日类型\",\"value\":\"day\"},{\"name\":\"月类型\",\"value\":\"month\"},{\"name\":\"年类型\",\"value\":\"year\"}]")]
public string DateName { get; set; }
如果是Enum类型的,如下
/// <summary>
/// 动作类型 这是一个Enum类型
/// </summary>
public ActionEnum ActionType { get; set; }
默认直接会转化成select特性
/// <summary>
/// 动作枚举
/// </summary>
public enum ActionEnum
{
/// <summary>
/// 查看所有
/// </summary>
all=-1,
/// <summary>
/// 正常
/// </summary>
start = 1,
/// <summary>
/// 停止
/// </summary>
stop = 4,
/// <summary>
/// 取消
/// </summary>
cannel = 5
}
value就是值,数字部分,name就是枚举的注释,中文那些!
如果你要忽略某些项,则
/// <summary>
/// 动作类型 由于过滤,UI只会显示1和4也就是正常和停止
/// </summary>
[PasteSelect("","-1,5")]
public ActionEnum SameAction { get; set; }
上面的特性中第一个参数为空是因为会从Enum中自动读取!
这个和select非常像,select前面的args2空着,就是因为被selects lselect占位了
这里是2个特性selects和lselect
表示多选,这个表示的是页面上的多选,需要列表显示,然后是可以多选!关键在于最后读取数据的时候,需要判断是什么格式的!
字段 | 类型 | 示例 | 说明 |
---|---|---|---|
args1 | 字符 | [{“name”:”大”,”value”:”1”},{“name”:”小”,”value”:”2”}] | 表示单选的可选值,name是显示 value是值 |
args2 | 字符 | , | 如果值类型不是数组,则返回字符串,用这个字符拼接,也就是分割字符 |
args3 | 字符 | -1,0 | 去除某些值的选项,比如去除-1表示的全部等,在enum的时候适用,配置的时候args1为空这个时候,从enum中读取 |
args4 | 字符 | 0 | 可选数量,不填或者0变表示不限 |
上面中可能要重点说的就是args2了
/// <summary>
/// 复选 多个之间用逗号隔开
/// </summary>
[PasteSelects("[{\"name\":\"日类型\",\"value\":\"day\"},{\"name\":\"月类型\",\"value\":\"month\"},{\"name\":\"年类型\",\"value\":\"year\"}]", ",")]
public string TypeStrs { get; set; }
按照上面的,如果用户选择了日类型和月类型,则提交的数据中
typeStrs的值为”day,month”
(首单词小写)
而lselect呢,其实就是横向的排列,所以这个要注意,项不能过多
/// <summary>
/// 横向分类 这是一个Enum类型,而且使用了过滤,过滤掉-1和0的值的选项不返回前端
/// </summary>
[PasteLselect("", "-1,0")]
public ActionEnum ClassType { get; set; }
selects和lselect默认是多选,除非args4做了配置
如果半行放不下,你可以再给他一个特性singlerow
这样就能以整行显示lselect了!
这个特性的作用于外表ID
比如新增会员的时候,要给他设定部门,所属部门
在我们设计的时候,应该是一个int类型字段PartId
填写的时候不能叫用户记住部门ID,直接填写吧!
所以操作就是点击输入框,则弹出部门列表,然后选择一个
选择完成后,不能显示一个数字ID吧,所以就希望显示的是部门的名称
而提交数据的时候提交的是int的PartId
字段 | 类型 | 示例 | 说明 |
---|---|---|---|
args1 | 字符 | cateInfo | 外表的名称,对应模板的path,或者路径,路径一定附带了/字符示例./abc.html |
args2 | 字符 | extendCates | 表示显示的数据,需要和下面2个配合,是一个当前的扩展,目标数组要配置hidden |
args3 | 字符 | id | 获取返回对象的属性,一般为id |
args4 | 字符 | name | id的友好名称显示,这里指的是外表,比如cateId,需要打开catelist页面,选择后,返回cate,则name作为友好显示,id作为实际值 |
///<summary>
///角色ID 点击选择角色
///</summary>
[ColumnDataType("outer", "gradeInfo", "extendGrade", "id", "name")]
public int GradeId { get; set; }
///<summary>
///权限ID 点击选择权限
///</summary>
[PasteOuter("roleInfo","extendRole","id","name")]
public int RoleId { get; set; }
上面中的第二个参数,args2其实是给编辑的时候用的,在新增的时候其实可以不填写!
而第一个参数其实可以写路径的,在默认情况下
roleInfo等于./index.html?model=select&path=/api/app/roleInfo
使用PasteOuter的时候,默认args3为id,args4为name
表示的是外表的对应字段的名称
(首单词小写)