急!Repeater 中改变行的背景色

时间:2021-12-15 14:46:19
 <asp:Repeater id="Repeater2" runat="server" >
    <ItemTemplate>
        <tr>
             <td  runat="server" align="center" id="f_Type" width="110" style="border-color:Red;" ><span><%# DataBinder.Eval(Container.DataItem, "f_Type")%></span></td>
        <td runat="server" align="center" id="f_Nkys" width="100" style="border-color:Red;" ><span><%# DataBinder.Eval(Container.DataItem, "f_Nkys")%></span></td>
                
        <td align="center" width="80" style="border-color:Red;" ><span><asp:Label runat="server" id="lb4" Text='<%# DataBinder.Eval(Container.DataItem, "f_Level")%>'></asp:Label></span>
        
              
        </td>
        </tr>
    </ItemTemplate>
    </asp:Repeater>

我想改变一些行的背景色或者这些行的边框颜色,来区别页面上Repeater 中显示的不同类的数据,怎么实现?

7 个解决方案

#1



页面:
<tr <%#GetColor(Eval("type")) %>>


后台:
public string GetColor(object type)
{
            if (type1)
            {
                return "style='background-color:red;'";
            }
            else
            {
                return "";
            }
}

#2


type是你用来区分数据的那个字段

public string GetColor(object type)
{
            if (type.ToString()=="红")
            {
                return "style='background-color:red;'";
            }
            else
            {
                return "";
            }
}

#3


<asp:Repeater ID="Repeater1" runat="server" 
            onitemdatabound="Repeater1_ItemDataBound">
        <ItemTemplate>
        <table cellpadding=0px cellspacing=0px>
        //把tr转化为服务器控件
        <tr runat="server" id="r1"><td><%#DataBinder.Eval(Container.DataItem,"AccountID") %></td><td><%#DataBinder.Eval(Container.DataItem,"AccountCode") %></td></tr>
        </table>
        </ItemTemplate>
        </asp:Repeater>
protected void Page_Load(object sender, EventArgs e)
        {
        //绑定数据源
            Repeater1.DataSource =    ;
            Repeater1.DataBind();
        }
      //数据行绑定时判断数据来改变行的背景颜色
        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            string AccountCode = ((DataRowView)e.Item.DataItem).Row["AccountCode"].ToString();
            if (AccountCode.Trim() == "3000B020")
            {
                HtmlTableRow col = (HtmlTableRow)e.Item.FindControl("r1");
                col.BgColor = "#889998";
            }
        }

#4


引用 2 楼 a471278514 的回复:
type是你用来区分数据的那个字段

HTML code


public string GetColor(object type)
{
            if (type.ToString()=="红")
            {
                return "style='background-color:red;'";
            }……

+1

#5



void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e) {

          // This event is raised for the header, the footer, separators, and items.

          // Execute the following logic for Items and Alternating Items.
          if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {

             if (((Evaluation)e.Item.DataItem).Rating == "Good") {
                ((Label)e.Item.FindControl("RatingLabel")).Text= "<b>***Good***</b>";
             }
          }
       }

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemdatabound.aspx

#6


 用Jquery  或者一种最简单的方法,用CSS 


  有个属性。 放上去出现什么颜色那个! this.style.......后面自己写!

#7


在数据绑定事件中或在cs文件中写个判断的方法都可以实现吧,楼上的答案应该很全了

#1



页面:
<tr <%#GetColor(Eval("type")) %>>


后台:
public string GetColor(object type)
{
            if (type1)
            {
                return "style='background-color:red;'";
            }
            else
            {
                return "";
            }
}

#2


type是你用来区分数据的那个字段

public string GetColor(object type)
{
            if (type.ToString()=="红")
            {
                return "style='background-color:red;'";
            }
            else
            {
                return "";
            }
}

#3


<asp:Repeater ID="Repeater1" runat="server" 
            onitemdatabound="Repeater1_ItemDataBound">
        <ItemTemplate>
        <table cellpadding=0px cellspacing=0px>
        //把tr转化为服务器控件
        <tr runat="server" id="r1"><td><%#DataBinder.Eval(Container.DataItem,"AccountID") %></td><td><%#DataBinder.Eval(Container.DataItem,"AccountCode") %></td></tr>
        </table>
        </ItemTemplate>
        </asp:Repeater>
protected void Page_Load(object sender, EventArgs e)
        {
        //绑定数据源
            Repeater1.DataSource =    ;
            Repeater1.DataBind();
        }
      //数据行绑定时判断数据来改变行的背景颜色
        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            string AccountCode = ((DataRowView)e.Item.DataItem).Row["AccountCode"].ToString();
            if (AccountCode.Trim() == "3000B020")
            {
                HtmlTableRow col = (HtmlTableRow)e.Item.FindControl("r1");
                col.BgColor = "#889998";
            }
        }

#4


引用 2 楼 a471278514 的回复:
type是你用来区分数据的那个字段

HTML code


public string GetColor(object type)
{
            if (type.ToString()=="红")
            {
                return "style='background-color:red;'";
            }……

+1

#5



void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e) {

          // This event is raised for the header, the footer, separators, and items.

          // Execute the following logic for Items and Alternating Items.
          if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {

             if (((Evaluation)e.Item.DataItem).Rating == "Good") {
                ((Label)e.Item.FindControl("RatingLabel")).Text= "<b>***Good***</b>";
             }
          }
       }

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemdatabound.aspx

#6


 用Jquery  或者一种最简单的方法,用CSS 


  有个属性。 放上去出现什么颜色那个! this.style.......后面自己写!

#7


在数据绑定事件中或在cs文件中写个判断的方法都可以实现吧,楼上的答案应该很全了