日期:2014-05-18  浏览次数:20612 次

Repeater第一条记录时加一个背景颜色,怎么弄啊
<asp:Repeater   ID= "Repeater1 "   runat= "server ">
                    <ItemTemplate>
                    <td>
                          <a   href= "1.aspx?id= <%#Eval( "ID ")%> "> <%#Eval( "GName ")   %> </a>
                    </td>
                    </ItemTemplate>
</asp:Repeater>


后台是:
Repeater1.DataSource   =Ds1();
Repeater1.DataBind();

我想在第一条记录显示时候, <td   加上   bgcolor=#ff0000>
其它记录不用加!

怎么弄啊谢谢

------解决方案--------------------
你可以绑定之前处理

for(int i=0;i <Ds1.Table[0].Rows.Count;i++)
{
if(i== 0)
Ds1.Table[0].Rows[i][ "GName "] = " <td bgcolor=#ff0000> " + <a href= '1.aspx?id= " + Convert.ToString(Ds1.Table[0].Rows[i][ "ID "]) + "> " + Convert.ToString(Ds1.Table[0].Rows[i][ "GName "]) + " </a> ";
}
------解决方案--------------------
<td <%# if(Container.ItemIndex==1){ "bgcolor=#ff0000 "};%>
看看这样行不行~~
------解决方案--------------------
<asp:Repeater ID= "Repeater1 " runat= "server ">
<ItemTemplate>
<%# Container.ItemIndex == 0 ? " <td bgcolor=#ff0000> " : " <TD> " %>
<a href= "1.aspx?id= <%#Eval( "ID ")%> "> <%#Eval( "GName ") %> </a>
</td>
</ItemTemplate>
</asp:Repeater>

------解决方案--------------------
你的td必须是服务器端控件(runat= "server "),这样你就可以使用:

HtmlTableRow td=(HtmlTableRow)myRepeater.Items[0].FindControl( "..... ");

类似代码找到它了。

面向对象编程,就是要清楚地知道你的代码处理的对象如何找到。