返回信息流存放的比如是2011-7-10,但是显示出来的都是2011-7-10 00:00:00 ,如何可以做到只显示2011-7-10?
跪求高手指点~
这是一条镜像帖。来源:北邮人论坛 / dot-net / #3112同步于 2011/7/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
C# 中datagridview显示数据库中的date类型,如何可以只显示日期
nutc
2011/7/10镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
这个需要对datagridview里面某一列进行遍历的操作,会比较麻烦一些,有没有就是直接一个属性就可以设置的啊?
【 在 wangjianzhou 的大作中提到: 】
: 最简单的将原来的字符截取前10位,str.substring(0,10)
: --
编的是windows程序,没有看到有这个属性啊
【 在 whui 的大作中提到: 】
: DataFormatString=”{0:yy-MM-dd}”
: --
比如你列叫RecordDate,你这个绑定列肯定是把DataField设成RecordDate,表示这一列绑定你的datasource的RecordDate这一列。
DataFormatString表示这一列用什么形式display出来,但是这里能用的方式比较有限。
【 在 nutc 的大作中提到: 】
: 这个需要对datagridview里面某一列进行遍历的操作,会比较麻烦一些,有没有就是直接一个属性就可以设置的啊?
: 【 在 wangjianzhou 的大作中提到: 】
: : 最简单的将原来的字符截取前10位,str.substring(0,10)
: ...................
绑定的话:
<asp:BoundField HeaderText="预定日期" DataField="你的日期字段名" DataFormatString="{0:yyyy-MM-dd}"/>
模板显示的化:<%# Eval("你的日期字段名").ToString().substring(0,10) %>
分层绑定的话,后台数据处理时两者都可以用。
【 在 wangjianzhou 的大作中提到: 】
: : 这个需要对datagridview里面某一列进行遍历的操作,会比较麻烦一些,有没有就是直接一个属性就可以设置的啊?
: : 【 在 wangjianzhou 的大作中提到: 】
: : : 最简单的将原来的字符截取前10位,str.substring(0,10)
: ...................
嗯,这样也可以,不过IDE里没法这么设置。另外再复杂一点的话,比如还要join别的数据源之类的,就只能DatarowBound里设置了
感谢上面各位同学的指点
不过我c#水平有限,看不太懂= =
之前采用的方式是
dataGridView1[8, i].Value = (Object)dataGridView1[8, i].Value.ToString().Substring(0, dataGridView1[8, i].Value.ToString().IndexOf(" ") == -1 ? dataGridView1[8, i].Value.ToString().Length : dataGridView1[8, i].Value.ToString().IndexOf(" "));
截取字段中 空格前的字符串,同时要判断是否存在空格(因为有些内容会很神奇的只显示日期不显示时间..)
这个方法可以解决问题,但是真的好慢好慢啊
网上找了挺多的方法,如dataGridView1.Columns[8].DefaultCellStyle.Format = "d";或是直接在datagridview属性里设置都不行
但今天终于找到可以解决的了! 热泪盈眶啊
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 8 || e.ColumnIndex==9 )//假设第3列为显示日期的列
{
e.Value = Convert.ToDateTime(e.Value).ToShortDateString();
}
}
也是对字符进行转换,但是比我的方式快多了 赞!