2015-07-10 3 views
1

У меня есть этот кусок кода, который отлично работает и выделяет ярлык. Тем не менее, я хочу, чтобы он выделил всю ячейку, а не только ярлык.asp.net- Выделите ячейку в listview

Любая помощь будет оценена!

protected void HighLight_ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListViewItemType.DataItem) 
    { 
     Label TotalTimeLabel = (Label)e.Item.FindControl("TotalTime"); 
     if (TotalTimeLabel != null) 
     { 
      Decimal Total; 
      if (Decimal.TryParse(TotalTimeLabel.Text, out Total) == true) 
      { 
       if (Total > (Decimal)1.5) 
       { 
        TotalTimeLabel.BackColor = System.Drawing.Color.Red; 
        TotalTimeLabel.ForeColor = System.Drawing.Color.Black; 
       } 
      } 
     } 
    } 
} 

Код для таблицы ниже

<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1" OnItemDataBound="HighLight_ItemDataBound" > 
     <LayoutTemplate> 
      <table cellpadding="1" class="TableCSS" runat="server" id="tblProducts"> 
       <tr runat="server" style="background-color:lightgrey"> 
       <th runat="server">enNotificationNoNI</th> 
       <th runat="server">TotalTime</th> 
       <th runat="server">TPTIMEIN</th> 
       <th runat="server">Status</th> 
       </tr> 
       <tr runat="server" id="itemPlaceholder" /> 
      </table> 
     </LayoutTemplate> 
     <ItemTemplate> 
      <tr runat="server" class="TableData"> 
      <td> 
       <asp:Label ID="enNotificationNoNI" runat="Server" Text='<%#Eval("enNotificationNoNI") %>' /> 
      </td> 
      <td> 
       <asp:Label ID="TotalTime" runat="Server" Text='<%#Eval("TotalTime") %>' /> 
      </td> 
      <td> 
       <asp:Label ID="TPTIMEIN" runat="Server" Text='<%#Eval("TPTIMEIN") %>' /> 
      </td> 
      <td> 
       <asp:Label ID="Status" runat="Server" Text='<%#Eval("Status") %>' /> 
      </td> 
      </tr> 
     </ItemTemplate> 
    </asp:ListView> 
+0

Можете ли вы опубликовать код страницы aspx? –

+0

Добавил таблицу, к которой это относится, я надеялся, что это будет простое переключение контекста, но у меня с ним много проблем – Cory

ответ

1

Попробуйте этот код

Для всей строки

Control ctrl = TotalTimeLabel.Parent.Parent; 
HtmlTableRow tblrw = (HtmlTableRow)ctrl; 
tblrw.BgColor = System.Drawing.Color.Red.Name; 

для одной ячейки

Control ctrl = TotalTimeLabel.Parent; 
HtmlTableCell tblcl = (HtmlTableCell)ctrl; 
tblcl.BgColor = System.Drawing.Color.Red.Name; 

дайте мне знать, будет ли это работать :)

+0

Просто попробовал, но он не работает. Нет ошибок – Cory

+0

Это сработало для меня !!! Вы разместили его во внутреннем состоянии IF? –

+0

Просто посмотрел на него, моя таблица стилей мешала ему. Однако это подчеркивает всю строку! Любая идея просто выделить ячейку ?? – Cory

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