Изменить стиль строк, созданных ListView в событии itemCreated - PullRequest
1 голос
/ 12 августа 2010

При рендеринге с привязкой к данным ListView я хочу динамически устанавливать цвет фона каждой строки в зависимости от результатов, в моем случае это Красный, Оранжевый и Зеленый.

        protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
    {
        DataRow myRow;
        DataRowView myRowView;
        myRowView = (DataRowView)e.Item.DataItem;
        myRow = myRowView.Row;

        if (myRow[2].ToString().CompareTo("") == 1)
        {
          // Colour coding here..    
        }

    }

Возможно ли достичь тега TRза каждый ряд менять стиль?

Большое спасибо, Стефан

Ответы [ 2 ]

1 голос
/ 12 августа 2010

Тег TR должен иметь runat = "server", чтобы использовать код на стороне сервера; тем не менее, вы можете ввести его без этого, изучив элементы управления, являющиеся дочерними для элемента; вероятно, есть HTML-код Literal или LiteralControl, и вы можете использовать манипуляции со строками для ввода ...

0 голосов
/ 12 августа 2010

Я разработал решение своей проблемы с некоторой хорошей помощью Брайана.

У меня есть ListView, и я добавил тег id (trRow) и тег runat = "server", например так:

<AlternatingItemTemplate>
            <tr id="trRow" runat="server" style="background-color:#FFF8DC;">

В коде это выглядит следующим образом:

        protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
    {
        DataRow myRow;
        DataRowView myRowView;
        myRowView = (DataRowView)e.Item.DataItem;
        myRow = myRowView.Row;

        System.Web.UI.HtmlControls.HtmlTableRow myTR = (System.Web.UI.HtmlControls.HtmlTableRow)e.Item.FindControl("trRow");

        if (myRow[2].ToString().CompareTo("") == 1)
        {
            myTR.Style.Value = "background-color:#FF0000;color: #000000;";
        } else
            myTR.Style.Value = "background-color:#00FF00;color: #000000;";

    }

Некоторая логика там все еще не верна и т. Д., Просто чтобы показать, как я решил проблему с динамическим изменением цвета фонакаждого ряда.

...