读书人

怎么根据条件将Repeater控件中的某一行

发布时间: 2013-02-02 12:27:16 作者: rapoo

如何根据条件将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;
}
}

读书人网 >C#

热点推荐