2012-05-29 2 views
0

조건에 따라 listview에서 행을 강조 표시하는 방법은 무엇입니까? 나는 특정 condition.My 코드의 행의 배경색을 변경하려면

<asp:ListView ID="lst_SentItems" runat="server" ItemPlaceholderID="tr" OnItemDataBound="lst_SentItems_ItemDataBound"> 
           <LayoutTemplate> 
            <table cellspacing="0"> 
             <tr class="hdrRowColor1"> 
              <td align="left" width="180px"> 
               EmpName 
              </td> 
              <td align="left" width="180px"> 
               Salary 
              </td> 
              <td align="left" width="180px"> 
               Address 
              </td> 
              <td align="left" width="180px"> 
               Department 
              </td> 
              </tr> 
             <tr id="tr" runat="server"> 
             </tr> 
            </table> 
           </LayoutTemplate> 
           <ItemTemplate> 
            <tr class='<%# Convert.ToBoolean(Container.DataItemIndex % 2) ? "EvenRowColor" : "OddRowColor" %>'> 
              <td align="left"> 
               <asp:label id="lbl3" runat="server" text='<%# Eval("EmpName")%>' /> 

              </td> 
              <td align="left"> 

'입니다 />

          </td> 
              <td align="left"> 
               <asp:label id="lbl1" runat="server" text='<%# Eval("Address")%>' /> 

              </td> 
              <td align="left"> 
               <asp:label id="lbl" runat="server" text='<%# Eval("Department")%>' /> 
              </td> 

            </tr> 
           </ItemTemplate> 
          </asp:ListView> 

지금은 특정 부서에 색상을주고 싶은 사람이 계정에서의 경우처럼 dept 다음 행의 배경색은 빨간색이어야합니다. 사람이 IT 부서에 속한 경우에는 바탕색이 녹색이어야합니다. 나는하여 ItemDataBound에 몇 가지 코드를 시도했지만 그 코드는 labels.i 만 다시 땅을 변경 다시 쓰러져 코드 행을 변경하려면

protected void lst_SentItems_ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListViewItemType.DataItem) 
    { 
     Label lblCount = (Label)e.Item.FindControl("lbl"); 
     if (lblCount != null) 
     { 
      if (lblCount.Text == IT2") 
      { 
          lblCount.BackColor = System.Drawing.Color.Red; 
      } 
     } 
    } 
} 

답변

2

비전이 확인 : 그것은 단지 아이디어와 편집이다 그것은 귀하의 요구 사항에 따라.

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListViewItemType.DataItem) 
    { 
     ListViewDataItem dataitem = (ListViewDataItem)e.Item; 
     int policyid = (int)DataBinder.Eval(dataitem.DataItem, "EmpID"); 
     if (policyid == 3) 
     { 
      HtmlTableRow cell = (HtmlTableRow)e.Item.FindControl("MainTableRow"); 

      cell.Style.Add("background-color", "Red"); 
     } 
    } 
} 
관련 문제