2013-10-30 2 views
0

나는 asp.net 함수를 가지고 있습니다. 첫 번째 기능의 주석을 질문으로보십시오.gridview 열 셀 배경색은 셀 값에 따라 다릅니다.

내 방법이 좋지 않다면 아이디어를 공유하십시오. asp.net을 처음 사용합니다. =)

protected String DelayedText(object base__id_with_time, object file_name_with_time) 
{ 
    DateTime _dateTime1= Convert.ToDateTime(base__id_with_time); 
    DateTime _dateTime2= DateTime.ParseExact(file_name_with_time, "dd-MM-yyyy-HH-mm-ss", CultureInfo.InvariantCulture); 
    int timeDifference = DateTime.Compare(_dateTime1 , _dateTime2); 
    if (timeDifference >= 1) 
    { 
     //how to set that certain gridview cell's background color to red here please? 
    } 
    return timeDifference.ToString(); 
} 


<asp:TemplateField HeaderText="Delayed" ItemStyle-Width="10%"> 
    <ItemTemplate> 
     <asp:Label ID="DelayedCheck" runat="server" Text='<%# DelayedDeliveryText(Eval("CreateDate"),Eval("FileName"))%>' 
      /> 
    </ItemTemplate> 
</asp:TemplateField> 

모든 아이디어가 인정됩니다. 고맙습니다 =)

+0

RowDataBound 이벤트에서 그것을 할 수 없어? 거기에 조건이 있다면 그냥 e.Row.Cells [yourCellIndex] .BackColor = Color.Red; – jannagy02

+0

@ jannagy02 더 구체적으로 알려 주실 수 있습니까? 또한 건너 뛸 행들도 있습니다. 예를 들어, 해당 행의 이름에 문자열 "abc"가있는 경우. 다음 줄로 건너 뛰고 싶습니다. 이 경우 Ineed는 데이터베이스 컨텐츠를 다시 전달합니다. – user2751691

답변

0

다음은 해결책입니다. 귀하의 코드에 따르면 :하자 Gridview 이름은 "grvData"

//how to set that certain gridview cell's background color to red here please? 
foreach (GridViewRow row in grvData.Rows) 
{ 
     Label lblDelayedCheck= ((Label)row.FindControl("DelayedCheck")).Text; 
     lblDelayedCheck.Cells[CellIndexNo].BackColor = Color.Red; 
} 
관련 문제