我自己写了个继承DataGrid的类
然后我把查询得到的DataSet指定为DataGrid的DataSource这时我想如果DataSource内有一列为日期,我就用指定的格式格式化它,而不用在每个aspx页内指定
以后改写起来也方便请教要怎么做?

解决方案 »

  1.   

    DataTable裏面有個屬性可以定義.樓下來説,我這邊沒msdn.
      

  2.   

    1。通过DataFormatString属性来设置你要的格式
    2。在后台通过函数来转换成你要的格式
      

  3.   

    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对应不上,请高手解决呀
      

  4.   

    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";
    }
    }
    }
    }
      

  5.   

    http://singlepine.cnblogs.com/articles/255153.html
    用这里面的“二.日期型格式处理通用方法”
    然后如上格式化时,正常用ToLongDateString,ToShortDateString方法就可以了
      

  6.   

    在邦定列里面加入 DataFormatString="{0:yyyy-MM-dd}"
      

  7.   

    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>
      

  8.   

    楼上说的也够详细了俄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"); //