2012-05-17 5 views
3

기본적으로 데이터를 gridview에 표시하려는 데이터베이스에서 데이터를 가져옵니다. 불행히도 요일은 정수로 저장되어 월요일은 0이고 화요일은 1 등입니다.GridView에 데이터가 표시되기 전에 편집하기

기본적으로 출력되는 데이터를 변경하여 번호를 변환합니다. 올바른 요일로 다음과 같이

내가 그리드 뷰를 가지고 순간에 나는 그것이로 설정 한 onrowdatabound : 코드 뒤에 GridView_RowDataBound에 대한 다음

<asp:GridView ID="GridView1" runat="server" AllowSorting="True" 
         AutoGenerateColumns="False" DataSourceID="SqlDataSource2" Width="721px" 
         onrowdatabound="GridView_RowDataBound" 
         > 

은 다음과 같습니다

protected void GridView_RowDataBound(Object sender, GridViewRowEventArgs e) 
    { 

     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 

     } 

    } 

나는 가정 나는 그 거기에 올바른 코드를 넣기 만하면됩니다. 그러나 어떤 이유로 특정 열의 모든 단일 셀만 단일 셀로 처리 할 수는 없습니다. 그래서 하나의 열에있는 모든 셀을 굵은 글씨체로 바꿀 수는 있지만 개별적으로 셀을 변경할 수는 없습니다. 나는 방법이 있지만 그것을하는 방법을 짐작할 수 없다고 확신합니다!

도움이 될 것입니다.

감사

 protected void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e) 
    { 

     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      int days = (int)GridView1.Rows[e.Row.RowIndex].Cell[2].Text; 
      if (days == 0) GridView1.Rows[e.Row.RowIndex].Cell[2].Text = "Monday"; 
      if (days == 1) GridView1.Rows[e.Row.RowIndex].Cell[2].Text = "Tuesday"; 
      if (days == 1) GridView1.Rows[e.Row.RowIndex].Cell[2].Text = "Wednesday"; 
      if (days == 1) GridView1.Rows[e.Row.RowIndex].Cell[2].Text = "Thursday"; 
      if (days == 1) GridView1.Rows[e.Row.RowIndex].Cell[2].Text = "Friday"; 

     } 

    } 
+0

이 문제를 살펴 보자 : http://stackoverflow.com/questions/10586854/how-to-set-the-style-of-a-cell-in-aspdatagrid/10587105#10587105 – Icarus

+0

마 모든 단일 셀 또는 특정 셀을 설정 하시겠습니까? – jams

+0

해당 요일 인 해당 열의 모든 단일 셀. 아니 numnber – user1096685

답변

3

당신이 시도 할 수 있습니다.

if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
    string days = e.Row.Cells[2].Text; 
    if (days == "0") e.Row.Cells[2].Text = "Monday"; 
    if (days == "1") e.Row.Cells[2].Text = "Tuesday"; 
    if (days == "2") e.Row.Cells[2].Text = "Wednesday"; 
    if (days == "3") e.Row.Cells[2].Text = "Thursday"; 
    if (days == "4") e.Row.Cells[2].Text = "Friday"; 
} 
+0

이 루프는 모든 것을 통과할까요, 아니면 최상위 루프를 수행할까요? 이것은 제가 이전에 가지고 있었던 문제였습니다. 나는 30 분 안에 이것을 시도 할 것이고, 당신을 업데이트 할 것이다. (정확한 경우 답으로 표시하라.) 도와 주셔서 고맙습니다. – user1096685

+0

GridView_RowDataBound이 이벤트는 gridview의 모든 행에 대해 발생하므로 해당 열의 모든 셀을 설정합니다. – jams

+0

이해합니다. 굉장해. 그냥 시도해 보았고 단어 "Cell"에 대해 다음 오류가 발생했습니다. \t 'System.Web.UI.WebControls.GridViewRow'에 'Cell'에 대한 정의가없고 'Cell'에 첫 번째 인수 유형을 허용하지 않는 정의가 없습니다. 'System.Web.UI.WebControls.GridViewRow'을 (를) 찾을 수 없습니다. – user1096685

관련 문제