2015-03-16 3 views
-1

Я использую один ретранслятор. В этом повторителя у меня есть один столбец с именем 32. Если этот столбец получает значение = увеличилось Я хочу показать обратно цвет зеленый еще красныйКак установить фоновый цвет reapeater td динамически

<asp:Repeater ID="grdvPos" runat="server"> 
    <ItemTemplate> 
     <td > 
     <%#Eval ("32")%> 
     </td> 
     </ItemTemplate> 

screenshot

ответ

0

Вы можете использовать ItemDataBound событие.

Изменить код ASPX, как,

 <ItemTemplate> 
      <td runat="server" ID="TD1"> 
      <%#Eval ("32")%> 
      </td> 
     </ItemTemplate> 

и в коде бэкэнд,

protected void grdvPos_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
     if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item) 
     { 
      HtmlTableCell td = (HtmlTableCell)e.Item.FindControl("TD1"); 
      if (td.InnerText.Contains("Decreased")) 
       td.Attributes.Add("style", "background-color:Red;"); 
      else 
       td.Attributes.Add("style", "background-color:Green;"); 
     } 
} 
+0

говорю давая ошибка HTMLTableCell не может быть найден, вы misssing любое пространство имен для это любое пространство имен я должен добавить? @ Кодер кода –

+0

Да, вам нужно 'System.Web.UI.HtmlControls.HtmlControl' namspace. [здесь] (https://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmltablecell%28v=vs.110%29.aspx) –

+0

Я использовал «using System.Web.UI .HtmlControls.HtmlTableCell;» но его выдача ошибок «Использование директивы пространства имен может применяться только к пространствам имен:« System.Web.UI.HtmlControls.HtmlTableCell »- это тип, а не пространство имен« –

0

Пожалуйста, обратитесь http://www.beansoftware.com/ASP.NET-Tutorials/Conditional-Values-Styles-GridView.aspx

Есть несколько способов 1) Использование RowDataBound и в зависимости от состояния изменить стиль 2) Оценить привязку условия использования. В фоновом режиме он будет использовать то же самое.

<asp:GridView ID="GridView1" runat="server"> 
<Columns> 
    <asp:TemplateField> 
    <ItemTemplate> 
    <img src='<%# (Eval("ImageURL")==DBNull.Value ? "DefaultImage.jpg" : DataBinder.Eval(Container.DataItem, "ImageURL")) %>' /> 
    </ItemTemplate> 
    </asp:TemplateField> 
</Columns> 
</asp:GridView> 
0

ASPX/дизайн

<asp:Repeater ID="grdvPos" runat="server"> 
<ItemTemplate> 
<td runat="server" ID="TD1" class="grdvclass backgrnd"> 
<%#Eval ("32")%> 
</td> 
</tr> 
</ItemTemplate> 

код за

protected void grdvPos_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item) 
     { 
      HtmlTableCell td = (HtmlTableCell)e.Item.FindControl("TD1"); 
      if (td.InnerText.Contains("Decreased")) 
       td.Attributes.Add("style", "background-color:Red;"); 
      else 
       td.Attributes.Add("style", "background-color:Green;"); 
     } 
    } 

выход solved

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