2010-05-17 1 views
0

안녕하세요, 저는 정말 간단하게하려고합니다. 내 datarow에서 데이터 열을 확인하고 있습니다> 0 인 경우 데이터 목록에 색상을 다시 표시하고 싶습니다.데이터 목록 itemdatabound 이벤트 문제가있는 항목을 변경하는 중 상태가 bg이면

if (e.Item.ItemType == ListItemType.Item || 
     e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     DataRowView drv = (DataRowView)(e.Item.DataItem); 
     int rating = int.Parse(drv.Row["rating"].ToString()); 

     if (rating > 0) 
     { 
      e.Item.BackColor = System.Drawing.Color.Green; 
     } 

    } 

내가 디버거를 통해 밟아야하고 색상이 단지 변경되지 않은 모든 조건을 때리고 ... 그 < 0 투명하게 남아있는 경우 녹색이 될 ... 나는 뭔가 간단한 I이어야한다 알고 그냥 그것을 볼 수 없습니다.

답변

2

배경색을 변경하려는 컨트롤의 인스턴스를 인스턴스화하려면 e.Item.FindControl을 사용해야합니다.

if (e.Item.ItemType == ListItemType.Item || 
    e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     DataRowView drv = (DataRowView)(e.Item.DataItem); 
     int rating = int.Parse(drv.Row["rating"].ToString()); 

     if (rating > 0) 
     { 
      Label lbl = (Label)e.Item.FindControl("yourLabelIDHere"); 
      lbl.BackColor = System.Drawing.Color.Green; 

     } 
    } 
+0

데이터리스트의 행 색상을 변경하고 싶습니다. – jr3

+0

DIV로 ItemTemplate 내용을 둘러싸고 runat = "server"를 DIV에 추가하고 ID가 있는지 확인해야합니다. 그런 다음 ItemDatabound에서 조건이 충족 될 때 div.Attributes.Add ("style", "background-color : Green;"); – TheGeekYouNeed

1

어디에서이 코드를 작성합니까? OnRowDataBound() 이벤트에 있어야합니다. 위의 내용을 OnItemDataBound()에 넣는 것 같습니다.

+0

안녕하세요, David 데이터 목록을 사용하고 있습니다. 귀하가 gridview를 생각하고 있다고 생각하십니까? 그래도 고마워! – jr3

+0

아, 미안하지만, 그 비트를 놓쳤습니다! 다행 했어. –

관련 문제