Te mando un ejemplo...
Supongamos que tiene sun datagrid con la siguiente estructura:
Cita: <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<%# Container.DataItem("Campo1") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<%# Container.DataItem("Campo2") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox Runat="server" ID="chkOption"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
Cuando llenes tu datagrid lo que vas a hacer es localizar el checkbox para asociarle el evento click y asignarle un ID a la fila para poder hacer despues la referencia en el evento ItemDataBound ... tu code quedaría:
Cita: Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
Dim chk As CheckBox = CType(e.Item.FindControl("chkOption"), CheckBox)
chk.Attributes.Add("onclick", "markRow('" + e.Item.ClientID + "',this)")
e.Item.Attributes.Add("id", e.Item.ClientID)
End If
End Sub
Y finalmente tu javascript quedaría: (dentro de los headers), donde recibe 2 parámetros... el id la fila y el objeto checkbox...
Cita: <script language=javascript>
function markRow(obj,chk)
{
if (chk.checked) {
obj = document.getElementById(obj);
obj.style.backgroundColor = 'red';
}
else {
obj = document.getElementById(obj);
obj.style.backgroundColor = 'white';
}
}
</script>
Y listo.. cuando des click se iluminará la columna seleccionada y viceversa..
Espero haber sido claro y que te haya servido
Salu2