【发布时间】:2010-01-28 20:52:20
【问题描述】:
这让我发疯了!这是我用 Datagrid 做了 100 多次的事情。我现在正在使用 Gridview,但我无法弄清楚。
我有这个网格:
<asp:GridView AutoGenerateColumns="false" runat="server" ID="gvSelect" CssClass="GridViewStyle"
GridLines="None" ShowHeader="False" PageSize="20" AllowPaging="True">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" ID="lbldas" Text="blahblah"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
在我尝试过的 RowDataBound 期间:
Protected Sub gvSelect_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvSelect.RowCreated
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Attributes.Add("onMouseOver", "this.style.backgroundColor='lightgrey'")
End If
End Sub
它从不设置行背景色。我已经成功使用:
gridrow.Cells(0).BackColor = Drawing.Color.Blue
但是做整行?不!这让我发疯了。有没有人可以解决我的问题?
为了好玩,我把它放在同一个页面上:
<asp:DataGrid AutoGenerateColumns="false" runat="server" ID="dgSelect" GridLines="None"
ShowHeader="False" PageSize="20" AllowPaging="True">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Label runat="server" ID="lbldas" Text="blahblah"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
在我放的 ItemDataBound 中:
If Not e.Item.ItemType = ListItemType.Header And Not e.Item.ItemType = ListItemType.Footer Then
e.Item.Attributes.Add("onMouseOver", "this.style.backgroundColor='lightgrey'")
End If
它按预期工作.. 那么我在 Gridview 上做错了什么?
**更新 ************************
我想我会发布生成的 HTML 以表明任何样式都不会影响这一点。
这是gridview html:
<div class="AspNet-GridView" id="gvSelect">
<table cellpadding="0" cellspacing="0" summary="">
<tbody>
<tr>
<td>
<span id="gvSelect_ctl02_lbldas">blahblah</span>
</td>
</tr>
</tbody>
</table>
</div>
这是生成的 Datagrid HTML:
<table cellspacing="0" border="0" id="dgSelect" style="border-collapse:collapse;">
<tr onMouseOver="this.style.backgroundColor='lightgrey'">
<td>
<span id="dgSelect_ctl03_lbldas">blahblah</span>
</td>
</tr>
</table>
见.. 主要区别在于标签。它永远不会在gridview中设置..我不知道为什么..我已经跟踪过它..代码运行了..:S
【问题讨论】:
-
我从顶部尝试了您的代码,它工作正常。您是否检查过是否有样式规则在单元格上设置 bg 颜色以覆盖行上设置的任何 bg 颜色?
-
我从页面中删除了所有样式.. 由于数据网格工作正常,它没有任何意义.. 有没有可能我的数据网格版本不好?是否有我不知道的 Visual Studio 2008 的服务包或修补程序?