如何动态设置中继器td的背景颜色
how to set background colur of reapeater td dynamically
我正在使用一个中继器。在那个中继器中,我有一个名为 32 的列。如果此列获得值 = 增加,我想显示背面颜色为绿色,否则为红色
<asp:Repeater ID="grdvPos" runat="server">
<ItemTemplate>
<td >
<%#Eval ("32")%>
</td>
</ItemTemplate>
您可以使用 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;");
}
}
请参考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>
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;");
}
}
输出
我正在使用一个中继器。在那个中继器中,我有一个名为 32 的列。如果此列获得值 = 增加,我想显示背面颜色为绿色,否则为红色
<asp:Repeater ID="grdvPos" runat="server">
<ItemTemplate>
<td >
<%#Eval ("32")%>
</td>
</ItemTemplate>
您可以使用 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;");
}
}
请参考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>
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;");
}
}
输出