2012-10-18 47 views
1

我有一個DataSet,我用這個DataSet綁定我的GridView。我的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

類似的問題:?設置DataFormatString上的DataGridView在運行時](http://stackoverflow.com/q/1272771/944681) –

回答

2

我相信這是使用AutoGenerateColumns屬性的限制之一。如果您通過BoundField s手動定義了列,則可以使用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"); 
    } 
} 
+0

@AvinashChandra沒問題:) – danyim