Datalist изменить цвет строки с использованием задачи события Itemdatabound

StackOverflow https://stackoverflow.com/questions/4768824

Вопрос

Я пытаюсь изменить цвет строки управления даталистом ...

        <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>

С следующим событием itemdatabound:

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;
        }

    }
}

Проблема в том, что какой -либо последний набор цветов фоновых цветов делает оба ряда .. Как я могу разделить ряды, так что одна строка - «статус» цвета, а один ряд - «удерживать» цвет ??

Я попытался использовать теги div в качестве предварительного упомянутого сообщения, но Divid.attributes.Add (Set Style: Color) не компилировал ...

Спасибо,

Это было полезно?

Решение

Использование контроля метки и расширение ее 100% ширины столбца хорошо работает для этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top