gridview中的行背景颜色?

时间:2013-02-26 05:46:35

标签: asp.net css gridview

在asp.net应用程序中,我正在使用网格视图控件,因为我将数据绑定到label中的grid-view。 如果数据为空,则行的颜色应为红色 如果不是,我的意思是,如果有数据绑定,那么绿色行。 这是我的代码:

<asp:TemplateField HeaderText ="Holiday Region">
     <ItemTemplate >
         <asp:Label ID ="lblholdareg" runat ="server" Text ='<%# Eval("Holidaregion") %>' >
         </asp:Label>
     </ItemTemplate>
</asp:TemplateField>

5 个答案:

答案 0 :(得分:2)

您可以rowdatabound gridview函数执行此操作,如下所示

protected void RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
         //change it according your cell number or find element
         if(e.Row.Cells[0].Text != "")
            e.Row.BackColor = Color.Green;
         else
            e.Row.BackColor = Color.Red;   
    }
}

答案 1 :(得分:2)

您需要处理RowDataBound事件,进入e.Row项目,并指定CSS类或直接设置背景颜色。我更喜欢设置CSS类,以便您可以在不重新编译的情况下更改它的呈现。

<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound">
    <Columns>
        <asp:TemplateField HeaderText="Holiday Region">
            <ItemTemplate>
                <asp:Label ID="lblholdareg" runat="server" Text='<%# Eval("Holidaregion") %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

代码隐藏,我不得不假设您使用DataTable作为数据源,更新代码以适合您的数据结构:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    System.Data.DataRow row = (System.Data.DataRow)e.Row.DataItem;
    if (row["Holidaregion"] == null || row["Holidaregion"].ToString().Trim().Length == 0)
    {
        e.Row.CssClass = "row-empty";
    }
    else 
    {
        e.Row.CssClass = "row-full";
    }
}

答案 2 :(得分:0)

尝试这样的事情

<asp:TemplateField HeaderText ="Holiday Region">
  <ItemTemplate >
    <asp:Label ID ="lblholdareg" runat ="server"
     CSSClass='<%# (String.IsNullOrEmply(Eval("Holidaregion")))?"red:green" %>' 
     Text ='<%# Eval("Holidaregion") %>' >  
    </asp:Label>

   </ItemTemplate>
</asp:TemplateField>

修改

而不是使用网格视图内联和代码隐藏的东西,只需使用jQuery并在客户端实现相同

答案 3 :(得分:0)

if(e.Row.RowType == DataControlRowType.DataRow)
{
    Control l = e.Row.FindControl("Label1");
  ((Label)l).BackColor = System.Drawing.Color.Red;
}

答案 4 :(得分:0)

尝试这个代码它是颜色变化的每一行与类别明智或过滤明智  http://devloper4u.blogspot.in/2013/10/how-to-set-color-in-every-row-on.html