首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么根据条件将Repeater控件中的某一行改变颜色

2013-02-02 
如何根据条件将Repeater控件中的某一行改变颜色?前台代码: table classtable2 width100%trth s

如何根据条件将Repeater控件中的某一行改变颜色?
前台代码:



 <table class="table2" width="100%">
            <tr>
                <th style="width: 6%">
                    操作
                </th>
                <th style="width: 8%">
                    特种人员编号
                </th>
                <th style="width: 6%">
                    姓名
                </th>
                <th style="width: 10%">
                    特种作业类型
                </th>
                <th style="width: 7%">
                    联系方式
                </th>
                <th style="width: 10%">
                    特种作业证编号
                </th>
                <th style="width: 10%">
                    发证单位
                </th>
                <th style="width: 11%">
                    认证有效期开始时间
                </th>
                <th style="width: 11%">
                    认证有效期结束时间
                </th>
                <th style="width:6%">
                  复审时间
                </th>
                <th style="width: 6%">


                    是否在职
                </th>
                <th style="width: 10%">
                    备注
                </th>
            </tr>
            <asp:Repeater ID="rptDataList" runat="server" 
                OnItemCommand="rptDataList_ItemCommand" 
                onitemdatabound="rptDataList_ItemDataBound">
                <ItemTemplate>
                    <tr class="light">
                        <td align="center">
                            <a href="javascript:Edit('<%#Eval("ESID") %>')">编辑</a>
                            <asp:LinkButton ID="lbtnDel" runat="server" CommandName="delete" CommandArgument='<%# Eval("ESID") %>'
                                OnClientClick="javascript:return confirm('确定删除吗?')">删除</asp:LinkButton>
                        </td>
                        <td align="center">
                            <%#Eval("ESID")%>
                        </td>
                        <td align="center">
                            <%#Eval("Name") %>
                        </td>
                        <td align="center">
                            <%# Eval("ESTypeName")%>


                        </td>
                        <td align="center">
                            <%# Eval("Phone")%>
                        </td>
                        <td>
                            <%# Eval("CertificateNo")%>
                        </td>
                        <td>
                            <%# Eval("IssuingUnit")%>
                        </td>
                        <td align="center">
                            <%# Eval("CertificateSDate", "{0:yyyy-MM-dd}")%>
                        </td>
                        <td align="center">
                            <%# Eval("CertificateEDate", "{0:yyyy-MM-dd}")%>
                        </td>
                        <td align="center">
                          
                          <asp:Label ID="lblFSDate" runat="server" Text='<%#Eval("FSDate","{0:yyyy-MM-dd}") %>'></asp:Label>
                        </td>
                        <td align="center">
                            <%# Eval("IsOnjob").ToString()=="1"?"<span style='color:green'>在职</span>":"<span style='color:red'>离职</span>" %>


                        </td>
                        <td>
                            <%# Eval("Remark")%>
                        </td>
                    </tr>
                </ItemTemplate>
                <AlternatingItemTemplate>
                    <tr class="gridrowalt light">
                        <td align="center">
                            <a href="javascript:Edit('<%#Eval("ESID") %>')">编辑</a>
                            <asp:LinkButton ID="lbtnDel" runat="server" CommandName="delete" CommandArgument='<%# Eval("ESID") %>'
                                OnClientClick="javascript:return confirm('确定删除吗?')">删除</asp:LinkButton>
                        </td>
                        <td align="center">
                            <%#Eval("ESID")%>
                        </td>
                        <td align="center">
                            <%#Eval("Name") %>
                        </td>
                        <td align="center">
                            <%# Eval("ESTypeName")%>
                        </td>


                        <td align="center">
                            <%# Eval("Phone")%>
                        </td>
                        <td>
                            <%# Eval("CertificateNo")%>
                        </td>
                        <td>
                            <%# Eval("IssuingUnit")%>
                        </td>
                        <td align="center">
                            <%# Eval("CertificateSDate", "{0:yyyy-MM-dd}")%>
                        </td>
                        <td align="center">
                            <%# Eval("CertificateEDate", "{0:yyyy-MM-dd}")%>
                        </td>
                        <td align="center">
                           <asp:Label ID="lblFSDate" runat="server" Text='<%#Eval("FSDate","{0:yyyy-MM-dd}") %>'></asp:Label>
                        </td>
                        <td align="center">
                            <%# Eval("IsOnjob").ToString()=="1"?"<span style='color:green'>在职</span>":"<span style='color:red'>离职</span>" %>
                        </td>


                        <td>
                            <%# Eval("Remark")%>
                        </td>
                    </tr>
                </AlternatingItemTemplate>
                <FooterTemplate>
                    <tr id="Tr1" runat="server" visible='<%#bool.Parse((rptDataList.Items.Count==0).ToString())%>'>
                        <td colspan="12" align="center">
                            <asp:Label ID="lblInfo" runat="server" Text="暂无数据"></asp:Label>
                        </td>
                    </tr>
                </FooterTemplate>
            </asp:Repeater>
        </table>



后台:

protected void rptDataList_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                
              
                Label lblFSDate = e.Item.FindControl("lblFSDate") as Label;
                //HtmlTableRow col = e.Item.FindControl("GetStyle") as HtmlTableRow;
                if (!string.IsNullOrEmpty(lblFSDate.Text))
                {
                   
                    DateTime dt1 = Convert.ToDateTime(lblFSDate.Text);
                    DateTime dt2 = DateTime.Now;
                   


                    if (dt2<dt1&&dt2.AddMonths(3)>dt1)
                    {
                        lblFSDate.ForeColor = System.Drawing.Color.Orange;
                        //col.BgColor = "#FF6100";
                    }
                    else
                    {
                        lblFSDate.ForeColor = System.Drawing.Color.Black;
                        //col.BgColor = "#000000";
                        
                    }
                }

            }
        }



现在如何将复审时间在3个月内的那些行数据用橙色的颜色显示出来? asp.net
[解决办法]
tr里通过 Container.ItemIndex来判断 决定用什么class


 <table class="table2" width="100%">
            <tr>
                <th style="width: 6%">
                    操作
                </th>
                <th style="width: 8%">
                    特种人员编号
                </th>
                <th style="width: 6%">
                    姓名
                </th>
                <th style="width: 10%">
                    特种作业类型
                </th>
                <th style="width: 7%">


                    联系方式
                </th>
                <th style="width: 10%">
                    特种作业证编号
                </th>
                <th style="width: 10%">
                    发证单位
                </th>
                <th style="width: 11%">
                    认证有效期开始时间
                </th>
                <th style="width: 11%">
                    认证有效期结束时间
                </th>
                <th style="width:6%">
                  复审时间
                </th>
                <th style="width: 6%">
                    是否在职
                </th>
                <th style="width: 10%">
                    备注
                </th>
            </tr>
            <asp:Repeater ID="rptDataList" runat="server" 
                OnItemCommand="rptDataList_ItemCommand" 
                onitemdatabound="rptDataList_ItemDataBound">
                <ItemTemplate>
                     <tr class="<%# Container.ItemIndex%2==0?"light":"gridrowalt light" %>">
                        <td align="center">
                            <a href="javascript:Edit('<%#Eval("ESID") %>')">编辑</a>


                            <asp:LinkButton ID="lbtnDel" runat="server" CommandName="delete" CommandArgument='<%# Eval("ESID") %>'
                                OnClientClick="javascript:return confirm('确定删除吗?')">删除</asp:LinkButton>
                        </td>
                        <td align="center">
                            <%#Eval("ESID")%>
                        </td>
                        <td align="center">
                            <%#Eval("Name") %>
                        </td>
                        <td align="center">
                            <%# Eval("ESTypeName")%>
                        </td>
                        <td align="center">
                            <%# Eval("Phone")%>
                        </td>
                        <td>
                            <%# Eval("CertificateNo")%>
                        </td>
                        <td>
                            <%# Eval("IssuingUnit")%>
                        </td>
                        <td align="center">


                            <%# Eval("CertificateSDate", "{0:yyyy-MM-dd}")%>
                        </td>
                        <td align="center">
                            <%# Eval("CertificateEDate", "{0:yyyy-MM-dd}")%>
                        </td>
                        <td align="center">
                          
                          <asp:Label ID="lblFSDate" runat="server" Text='<%#Eval("FSDate","{0:yyyy-MM-dd}") %>'></asp:Label>
                        </td>
                        <td align="center">
                            <%# Eval("IsOnjob").ToString()=="1"?"<span style='color:green'>在职</span>":"<span style='color:red'>离职</span>" %>
                        </td>
                        <td>
                            <%# Eval("Remark")%>
                        </td>
                    </tr>
                </ItemTemplate>
               
                <FooterTemplate>
                    <tr id="Tr1" runat="server" visible='<%#bool.Parse((rptDataList.Items.Count==0).ToString())%>'>
                        <td colspan="12" align="center">
                            <asp:Label ID="lblInfo" runat="server" Text="暂无数据"></asp:Label>


                        </td>
                    </tr>
                </FooterTemplate>
            </asp:Repeater>
        </table>


[解决办法]
那就把那个<%# Container.ItemIndex%2==0?"light":"gridrowalt light" %>条件改成时间比较嘛

<%# ((DateTime)Eval("FSDate")).AddMonths(3)<DateTime.Now ? "gridrowalt light":"light" %>
[解决办法]
  <tr class="light"   <asp:Literal ID="Literal1" runat="server"></asp:Literal> >                        <td align="center">                            <a href="javascript:Edit('<%#Eval("ESID") %>')">编辑</a>                            <asp:LinkButton ID="lbtnDel" runat="server" CommandName="delete" CommandArgument='<%# Eval("ESID") %>'                                OnClientClick="javascript:return confirm('确定删除吗?')">删除</asp:LinkButton>                        </td>                        <td align="center">                            <%#Eval("ESID")%>

========tr放一个Literal 
if (dt2<dt1&&dt2.AddMonths(3)>dt1)                    {                        lblFSDate.ForeColor = System.Drawing.Color.Orange;                        //col.BgColor = "#FF6100";                  
Literal lt= e.Item.FindControl("Literal1") as Literal;
lt.Text="bgcolor='#FF9900'";
}

[解决办法]
style='<%# (DateTime.Now-Convert.ToDateTime(Eval("FSDate").ToString())).Month<3 ? "color:red":"color:#000000" %>'
[解决办法]
 protected void rptResult_ItemDataBound(object sender, RepeaterItemEventArgs e)
 if (e.Item.ItemType == ListItemType.Item 


[解决办法]
 e.Item.ItemType == ListItemType.AlternatingItem)
{
   switch (你自己判断的条件)
                {
                    case "1":
                        ((Label)e.Item.FindControl("labCustomerID")).ForeColor = System.Drawing.Color.Blue;
                        break;
                    case "3":
                        ((Label)e.Item.FindControl("labCustomerID")).ForeColor = System.Drawing.Color.Red;
                       
                        break;
                    case "5":
                        ((Label)e.Item.FindControl("labCustomerID")).ForeColor = System.Drawing.ColorTranslator.FromHtml("#926a1e");
                        break;
                    default:
                        break;
                }
}

热点排行