Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
If e.Item.ItemIndex <> -1 Then e.Item.Attributes.Add("onmouseover", "this.bgColor='#C1D2EE'")
If e.Item.ItemIndex Mod 2 = 0 Then
e.Item.Attributes.Add("bgcolor", "#FFFFFF")
e.Item.Attributes.Add("onmouseout", "this.bgColor=document.getElementById('DataGrid1').singleValue")
Else
e.Item.Attributes.Add("bgcolor", "oldlace")
e.Item.Attributes.Add("onmouseout", "this.bgColor=document.getElementById('DataGrid1').oldValue")
End If
Else
DataGrid1.Attributes.Add("oldValue", "oldlace")
DataGrid1.Attributes.Add("singleValue", "#FFFFFF")
End If
End Sub
If e.Item.ItemIndex <> -1 Then e.Item.Attributes.Add("onmouseover", "this.bgColor='#C1D2EE'")
If e.Item.ItemIndex Mod 2 = 0 Then
e.Item.Attributes.Add("bgcolor", "#FFFFFF")
e.Item.Attributes.Add("onmouseout", "this.bgColor=document.getElementById('DataGrid1').singleValue")
Else
e.Item.Attributes.Add("bgcolor", "oldlace")
e.Item.Attributes.Add("onmouseout", "this.bgColor=document.getElementById('DataGrid1').oldValue")
End If
Else
DataGrid1.Attributes.Add("oldValue", "oldlace")
DataGrid1.Attributes.Add("singleValue", "#FFFFFF")
End If
End Sub
foreach (DataGridItem myItem in this.DataGrid1.Items)
{
myItem.Attributes.Add("onmouseover","this.bgColor='gray' ");
myItem.Attributes.Add("onmouseout","this.bgColor='white' ");
}
<asp:DataGrid id="MyDataGrid" runat="server" AutoGenerateColumns="False" Width="98%" CellPadding="2"
BorderWidth="1pt" GridLines="None">
<ItemStyle CssClass="line-bg"></ItemStyle>
<HeaderStyle Font-Size="X-Small" HorizontalAlign="Center" ForeColor="#FFFFCC" BackColor="#006699"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="表情">
<HeaderStyle Width="30px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<ItemTemplate>
<%#Getface( Convert.ToString( DataBinder.Eval(Container, "DataItem.face")),Convert.ToString( DataBinder.Eval(Container, "DataItem.istop")) )%>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="主题">
<HeaderStyle Width="50%"></HeaderStyle>
<ItemTemplate>
<%#GetTitle( Convert.ToString( DataBinder.Eval(Container, "DataItem.title")),Convert.ToString( DataBinder.Eval(Container, "DataItem.id")),Convert.ToInt32( DataBinder.Eval(Container, "DataItem.hits")),Convert.ToInt32( DataBinder.Eval(Container, "DataItem.recount")),Convert.ToInt32( DataBinder.Eval(Container, "DataItem.hour")) )%>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="作者">
<HeaderStyle Width="60px"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.username") %>' ID="Label1">
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="回复/人气">
<HeaderStyle Width="70px"></HeaderStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.recount") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="addtime" HeaderText="发表时间">
<HeaderStyle Width="120px"></HeaderStyle>
</asp:BoundColumn>
</Columns>
</asp:DataGrid>---------------------------------------
private void MyDataGrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if (e.Item.ItemIndex >= 0)
{
e.Item.Attributes["onmouseover"] = "this.style.backgroundColor='#C0FFFF';";
e.Item.Attributes["onmouseout"] = "this.style.backgroundColor='';";
}
}
BorderWidth="1pt" GridLines="None">
没加OnItemCommand="MyDataGrid_ItemCommand"
不过我是用itemdatabound事件实现的:
public void MyDataGrid_OnItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'") ;
e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='LightGoldenrodYellow'") ;
}
}
OnItemDataBound="MyDataGrid_OnItemDataBound"
效果:http://218.84.107.5/s.aspx