Это сводит меня с ума! Это то, что я сотворил с датагридом. Я сейчас использую 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-код, чтобы показать, что любые стили не влияют на это.
Вот 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>
А вот итоговый HTML-код Datagrid:
<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