Dev GridView网格中格式化 TimeSpan

Dev官网 RepositoryItemTimeSpanEdit

结果如下:
在这里插入图片描述

问题描述:

  • 现在有一个TimeSpan 短时间
  • 需要在表格中格式化成 d天hh时mm分

尝试了很多方法 都没成功 如:

  • 多加一个字段专门用来显示格式化的时间
  • 网格的DisplayFormat.FormatString属性

翻官方Demo 和 文档发现了 RepositoryItemTimeSpanEdit 类
把网格的ColumnEdit 设置为这个类的实例对象 调整对象的属性

Code:

// 找到要更改的 Column
 var column = this.gridViewNode.Columns.ColumnByFieldName(nameof(ClassName.XXX));
 if (column != null)
 {
     var editor = new RepositoryItemTimeSpanEdit();
     // 获取或设置在编辑器未聚焦时是否仍使用掩码对显示值进行格式化。 就是在网格未编辑状态显示设置的格式
     // false时 网格中的格式会是 d.hh:mm:ss
     editor.Mask.UseMaskAsDisplayFormat = true;
     // 获取或设置是否允许在时间间隔内编辑秒。
     editor.AllowEditSeconds = false;
     // 获取或设置掩码类型。
     editor.Mask.MaskType = MaskType.DateTime;
     // 掩码格式
     editor.EditMask = @"d\天HH\时mm\分";
     column.ColumnEdit = editor;
 }

更新了一波dev 从17版本跳到20版本 发现此设置失效

时间跨度格式参考

Code:

// 找到要更改的 Column
 var column = this.gridViewNode.Columns.ColumnByFieldName(nameof(ClassName.XXX));
 if (column != null)
 {

	var editor = new RepositoryItemTimeSpanEdit();
	
	editor.MaskSettings.Set("mask", @"dd\天 hh\时 mm\分");
	editor.Mask.UseMaskAsDisplayFormat = true;
	
	// 效果和上面相同
	//editor.EditMask = @"d\天hh\时mm\分";
	//editor.Mask.UseMaskAsDisplayFormat = true;
	//editor.AllowEditSeconds = false;
	//editor.AllowEditMilliseconds = false;
	
	column.ColumnEdit = editor;
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值