Datalist ändern die Zeilenfarbe mit itemDatabound Ereignisproblemen
-
16-10-2019 - |
Frage
Ich versuche, die Zeilenfarbe einer Datalistensteuerung zu ändern ...
<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>
Mit der folgenden Itemdatabound -Veranstaltung:
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;
}
}
}
Das Problem ist, dass das, was auch immer der letzte Satz von Hintergrundfarben ist, beide Zeilen macht. Wie kann ich die Zeilen trennen, so dass eine Zeile "Status" -Farbe und eine Zeile "Halten" -Farbe ist?
Ich habe versucht, DIV -Tags als vorher erwähnter Beitrag zu verwenden, aber divid.attributes.add (set style: color) nicht kompiliert ...
Vielen Dank,
Lösung
Wenn Sie eine Etikettenregelung verwenden und die 100% der Säulenbreite erweitern, funktioniert dies gut.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow