我的一个Datalist每一行里有一个html单元格,我要求每一行的背景色都不一样,取一个随机的颜色,我自己在itemdatabound事件里写了,但是不对,结果每行颜色都一样,请教正确的写法?private void dl_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{


HtmlTableCell myt=(HtmlTableCell)e.Item.FindControl("td1");
if(myt!=null)
{
Random rd=new Random();
Color myco=Color.FromArgb(rd.Next(255),rd.Next(255),rd.Next(255));
myt.BgColor=myco.ToString();
}
}

解决方案 »

  1.   

    if(e.Item.ItemIndex<0)  return;
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    { e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='48d1cc'");
    e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor");这是一个当鼠标滑过时改变颜色的代码!
    你改一下!
      

  2.   

    应该用datagrid的AlternatingItemstyle属性
    即myt.AlternatingItemstyle
      

  3.   

    Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
            If e.Item.ItemIndex = 0 Then
                ' e.Item.Attributes.Add("style", "cursor:hand")
                e.Item.CssClass = "HeaderStyle"        ElseIf e.Item.ItemIndex <> Session("row") - 1 Then
                Dim i As Int32
                For i = 0 To e.Item.Cells.Count / 2                e.Item.Cells.Item(2 * i).BackColor = System.Drawing.Color.Honeydew
                Next        End If
            If e.Item.ItemType = ListItemType.Footer Then
                Dim myGrid As DataGrid = CType(sender, DataGrid)            CType(sender, DataGrid).Items(myGrid.Items.Count - 1).CssClass = "FooterStyle"
            End If
        End Sub这是设置datagrid的表头、表尾和列间隔不同的颜色
      

  4.   

    试试这个:
    private void dl_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {
    Random rd = new Random();
    Color myco = Color.FromArgb(rd.Next(255),rd.Next(255),rd.Next(255));
    e.Item.BgColor = myco.ToString();
    }e.Item 可以取到 TableRow。
    e.Item.Cells 可以取到 TableCell。e.Item 有没有 BgColor?或者你用 e.Item.Attributes.Add() 也可以。
      

  5.   

    给你个小建议,把Random的最大值设定为不同的,如255,254,253
    出来就该不同了