DataGrid custom control 格式化日期列怎么做? 我自己写了个继承DataGrid的类然后我把查询得到的DataSet指定为DataGrid的DataSource这时我想如果DataSource内有一列为日期,我就用指定的格式格式化它,而不用在每个aspx页内指定以后改写起来也方便请教要怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DataTable裏面有個屬性可以定義.樓下來説,我這邊沒msdn. 1。通过DataFormatString属性来设置你要的格式2。在后台通过函数来转换成你要的格式 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { ((Label)e.Item.Cells[CounterColumnIndex].FindControl("LabRecID")).Text = Convert.ToString((this.CurrentPageIndex-1) * this.PageSize + e.Item.ItemIndex + 1); DataRowView view = (DataRowView)e.Item.DataItem; for(int i=0; i<view.Row.ItemArray.Length; i++) { if(view.Row.ItemArray[i] is System.DateTime) { e.Item.Cells[i].Text = "DataGrid"; } } }写到OnItemDataBound事件中是可的但是我的source中的列不一定都在DataGrid上,所以得到的DataRowView中的列和DataGrid的Cell对应不上,请高手解决呀 protected override void OnItemDataBound(DataGridItemEventArgs e){ base.OnItemDataBound (e); if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DataRowView view = (DataRowView)e.Item.DataItem; for(int i=0; i<view.Row.ItemArray.Length; i++) { if(view.Row.ItemArray[i] is System.DateTime) { e.Item.Cells[i].Text = "DataGrid"; } } }} http://singlepine.cnblogs.com/articles/255153.html用这里面的“二.日期型格式处理通用方法”然后如上格式化时,正常用ToLongDateString,ToShortDateString方法就可以了 在邦定列里面加入 DataFormatString="{0:yyyy-MM-dd}" 1.绑定时格式化日期方法: <ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " > <ITEMSTYLE WIDTH= "18% " > </ITEMSTYLE > </ASP:BOUNDCOLUMN > 2.数据控件如DataGrid/DataList等的件格式化日期方法: e.Item.Cell[0].Text = Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString();3.用String类转换日期显示格式: String.Format( "yyyy-MM-dd ",yourDateTime); 4.用Convert方法转换日期显示格式: Convert.ToDateTime("2005-8-23").ToString ("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //支持繁体数据库5.直接用ToString方法转换日期显示格式:DateTime.Now.ToString("yyyyMMddhhmmss");DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")6.只显示年月 DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}")7.显示时间所有部分,包括:年月日时分秒<asp:BoundColumn DataField="收款时间" HeaderText="收款时间" DataFormatString="{0:yyyy-MM-dd HH24:mm:ss}"></asp:BoundColumn> 楼上说的也够详细了俄1.9 取中文日期显示——年月日时分 string strY=currentTime.ToString("f"); //不显示秒 chinaitpower.comNJMNpKx60pHmoHa1.10 取中文日期显示_年月 string strYM=currentTime.ToString("y"); chinaitpower.comNJMNpKx60pHmoHa1.11 取中文日期显示_月日 string strMD=currentTime.ToString("m"); chinaitpower.comNJMNpKx60pHmoHa1.12 取当前年月日,格式为:2003-9-23 string strYMD=currentTime.ToString("d"); chinaitpower.comNJMNpKx60pHmoHa1.13 取当前时分,格式为:14:24 string strT=currentTime.ToString("t"); chinaitpower.comNJMNpKx60pHmoHa2、Int32.Parse(变量) Int32.Parse("常量") 字符型转换 转为32位数字型 chinaitpower.comNJMNpKx60pHmoHa3、 变量.ToString() 字符型转换 转为字符串 12345.ToString("n"); //生成 12,345.00 12345.ToString("C"); //生成 ¥12,345.00 12345.ToString("e"); //生成 1.234500e+004 12345.ToString("f4"); //生成 12345.0000 12345.ToString("x"); //生成 3039 (16进制) 12345.ToString("p"); // 求ASP.Net源码网址 网页如何实现坐标? 【SQL语句问题】 水晶报表的两种模式 从ASP初入.NET,发现无从下手,问个数据操作的小白问题 我用网站管理工具,为什么总是提示“遇到错误,回到上一页” 在ASP.NET页面里如何执行存储过程 大家看一下,我做了一个组织结构, 怎样实现点击datagrid表头排序时出现一个上或下的标志? wuyq11 GetStoreInformation()如何实现,太崇拜你了,真渊博 mobile也精通 ASP.NET 2.0 LOGIN控件及相关数据库设计问题 aspx页面中如何取得 "用户控件"中的值?
2。在后台通过函数来转换成你要的格式
{
((Label)e.Item.Cells[CounterColumnIndex].FindControl("LabRecID")).Text = Convert.ToString((this.CurrentPageIndex-1) * this.PageSize + e.Item.ItemIndex + 1); DataRowView view = (DataRowView)e.Item.DataItem;
for(int i=0; i<view.Row.ItemArray.Length; i++)
{
if(view.Row.ItemArray[i] is System.DateTime)
{
e.Item.Cells[i].Text = "DataGrid";
}
}
}写到OnItemDataBound事件中是可的
但是我的source中的列不一定都在DataGrid上,所以得到的DataRowView中的列和DataGrid的Cell对应不上,请高手解决呀
{
base.OnItemDataBound (e);
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView view = (DataRowView)e.Item.DataItem;
for(int i=0; i<view.Row.ItemArray.Length; i++)
{
if(view.Row.ItemArray[i] is System.DateTime)
{
e.Item.Cells[i].Text = "DataGrid";
}
}
}
}
用这里面的“二.日期型格式处理通用方法”
然后如上格式化时,正常用ToLongDateString,ToShortDateString方法就可以了
<ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " >
<ITEMSTYLE WIDTH= "18% " > </ITEMSTYLE >
</ASP:BOUNDCOLUMN > 2.数据控件如DataGrid/DataList等的件格式化日期方法:
e.Item.Cell[0].Text = Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString();3.用String类转换日期显示格式:
String.Format( "yyyy-MM-dd ",yourDateTime); 4.用Convert方法转换日期显示格式:
Convert.ToDateTime("2005-8-23").ToString ("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //支持繁体数据库5.直接用ToString方法转换日期显示格式:
DateTime.Now.ToString("yyyyMMddhhmmss");
DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")6.只显示年月
DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}")7.显示时间所有部分,包括:年月日时分秒
<asp:BoundColumn DataField="收款时间" HeaderText="收款时间"
DataFormatString="{0:yyyy-MM-dd HH24:mm:ss}">
</asp:BoundColumn>
string strY=currentTime.ToString("f"); //不显示秒 chinaitpower.comNJMNpKx60pHmoHa1.10 取中文日期显示_年月
string strYM=currentTime.ToString("y"); chinaitpower.comNJMNpKx60pHmoHa1.11 取中文日期显示_月日
string strMD=currentTime.ToString("m"); chinaitpower.comNJMNpKx60pHmoHa1.12 取当前年月日,格式为:2003-9-23
string strYMD=currentTime.ToString("d"); chinaitpower.comNJMNpKx60pHmoHa1.13 取当前时分,格式为:14:24
string strT=currentTime.ToString("t"); chinaitpower.comNJMNpKx60pHmoHa2、Int32.Parse(变量) Int32.Parse("常量")
字符型转换 转为32位数字型 chinaitpower.comNJMNpKx60pHmoHa3、 变量.ToString()
字符型转换 转为字符串
12345.ToString("n"); //生成 12,345.00
12345.ToString("C"); //生成 ¥12,345.00
12345.ToString("e"); //生成 1.234500e+004
12345.ToString("f4"); //生成 12345.0000
12345.ToString("x"); //生成 3039 (16进制)
12345.ToString("p"); //