我有一个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();
}
答案 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");
}
}