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 태그를 사용하여 시도 컴파일하지 않았다 ...
감사합니다,
대신 Label 컨트롤을 사용하고 div 태그 참조의 이상한 종류를 사용하는 행 대신에 이것을 수행하는 이전/표준 방법을 사용한다고 생각합니다. – CraigJSte