2012-10-18 3 views
1

나는 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

비슷한 질문 : [? 런타임에서 DataGridView를 설정 DataFormatString] (http://stackoverflow.com/q/1272771/944681) –

답변

2

나는 이것이 AutoGenerateColumns 속성 사용의 한계 중 하나라고 생각합니다. BoundField을 통해 열을 수동으로 정의한 경우 DataFormatString 특성으로 형식을 제어 할 수 있습니다.

귀하의 경우 데이터 세트의 날짜 유형 필드에 문자열을 적용하려고 시도하기 때문에 접근 방식이 작동하지 않는 이유가 있습니다. 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

관련 문제