将格式应用于数据集列

时间:2012-10-18 18:11:34

标签: c# asp.net

我有一个DataSet,我正在使用此GridView绑定我的DataSet。我的AutoGenerateColumns设置为true。 DataSet返回的一列中包含DateTime值,我只需要获取日期部分,然后将网格与DataSet绑定。我试过这样做,但那不起作用。任何帮助将不胜感激。

  private void FormatDataSet(DataSet ds) 
{ 
    foreach(DataRow dr in ds.Tables[0].Rows.Count) 
       dr["Col5"] = (DateTime.Parse(dr["col5"].ToString())).ToString("d").ToString(); 
 }

1 个答案:

答案 0 :(得分:2)

我认为这是使用AutoGenerateColumns属性的限制之一。如果您通过BoundField手动定义了列,则可以使用DataFormatString属性控制格式。

至于你的情况,你的方法不起作用的原因是因为你试图强制字符串进入DataSet中的Date类型字段。除非您更改DataSet定义,否则这是不可能的。

解决这个问题的方法是转到GridView的RowDataBound事件并手动编辑单元格。

private void YourGridViewControl_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
    DataRowView drv = null;
    if (e.Row.RowType == DataControlRowType.DataRow) {
        drv = (DataRowView)e.Row.DataItem();
        e.Row.Cells[1].Text = (DateTime.Parse(dr("col5").ToString())).ToString("d");
    }
}