2010-08-12 2 views
1

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

 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 тега для каждой строки, чтобы изменить стиль?

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

ответ

0

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

У меня есть ListView и я добавил идентификатор тега (trRow) и тег RUNAT = "сервер", как это:

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

    } 

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

1

ВУ тег будет иметь RUNAT = «сервер», чтобы использовать код на стороне сервера; однако вы можете ввести его без этого, изучив элементы управления, которые являются дочерним элементом элемента; вероятно, есть Literal или LiteralControl с HTML, и вы можете использовать строковые манипуляции для ввода ...

+0

Привет, вы имеете в виду, используя Sender или ListViewItemEventArgs в событии ItemCreated? Не 100% уверены, что вы предлагаете здесь. // Спасибо – StefanE

+0

, если вы используете серверную часть TR, используйте e.Item.FindControl («trid»); в противном случае, я не уверен на 100%, но я думаю, что e.Item имеет коллекцию Controls, которую вы могли бы запрограммировать в поисках литерала с тегом для ввода. –

Смежные вопросы