2011-01-22 2 views
0

나는하여 DataList 컨트롤의 행 색상을 변경하려고 ... 다음하여 ItemDataBound 이벤트와데이터 목록 변경 행 컬러를 사용하여 ItemDataBound 이벤트 문제

 <asp:DataList ID="dlTrades" Width="100%" 
      RepeatDirection="Horizontal" 
      RepeatColumns="6" runat="server" 
      DataSourceID="objTrds" 
      OnItemDataBound="dlTrades_ItemDataBound"> 
      <ItemTemplate> 
      <table> 
        <tr> 
        <td> 
         <b> 
         <%# DataBinder.Eval((System.Data.DataRowView)Container.DataItem, "Status") %> 
         </b> 
        </td> 
        </tr> 
       </table> 
       <table> 
        <tr> 
         <td><%# DataBinder.Eval((System.Data.DataRowView)Container.DataItem, "Hold") %> 
         </td> 
        </tr> 
       </table> 
      </ItemTemplate> 
     </asp:DataList> 

:

protected void dlTrades_ItemDataBound(object sender, DataListItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     System.Data.DataRowView drv = (System.Data.DataRowView)(e.Item.DataItem); 

     string hld = (string)drv.Row["Hold"].ToString(); 

     if (hld == "Trade") 
     { 
      e.Item.BackColor = System.Drawing.Color.LightGreen; 
      e.Item.ForeColor = System.Drawing.Color.White; 
      e.Item.Font.Bold = true; 
     } 

     if (hld == "Hold") 
     { 
      e.Item.BackColor = System.Drawing.Color.LightGray; 
      e.Item.ForeColor = System.Drawing.Color.White; 
      e.Item.Font.Bold = true; 
     } 

     System.Data.DataRowView drv2 = (System.Data.DataRowView)(e.Item.DataItem); 

     string stat = (string)drv2.Row["Status"].ToString(); 

     if (stat == "Open") 
     { 
      e.Item.BackColor = System.Drawing.Color.LightGreen; 
      e.Item.ForeColor = System.Drawing.Color.White; 
      e.Item.Font.Bold = true; 
     } 
     if (stat == "Filled") 
     { 
      e.Item.BackColor = System.Drawing.Color.Gold; 
      e.Item.ForeColor = System.Drawing.Color.White; 
      e.Item.Font.Bold = true; 
     } 

     if (stat == "Closed") 
     { 
      e.Item.BackColor = System.Drawing.Color.IndianRed; 
      e.Item.ForeColor = System.Drawing.Color.White; 
      e.Item.Font.Bold = true; 
     } 

    } 
} 

문제가 있다는 것입니다 마지막 배경색 세트가 무엇이든간에 두 행을 수행합니다. 한 행이 '상태'색이고 한 행이 '보류'색이되도록 행을 어떻게 분리 할 수 ​​있습니까 ??

내가 언급 이전 포스트하지만 divID.Attributes.Add (세트 스타일 : 색상)으로 div 태그를 사용하여 시도 컴파일하지 않았다 ...

감사합니다,

+0

대신 Label 컨트롤을 사용하고 div 태그 참조의 이상한 종류를 사용하는 행 대신에 이것을 수행하는 이전/표준 방법을 사용한다고 생각합니다. – CraigJSte

답변

0

Label 컨트롤을 사용하고 100 확장 너비의 %는이 작업에 적합합니다.

관련 문제