Necesito ayuda con listview

Me podrías ayudar a hacer esto pero para un ListView asp.net

Protected Sub ConsultaDGV_RowCreated(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles ConsultaDGV.RowCreated
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Attributes.Add("onmouseover", "this.originalstyle=this.style.backgroundColor;this.style.backgroundColor='#C1DAD7';")
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=this.originalstyle;")
e.Row.Attributes("onclick") = ClientScript.GetPostBackClientHyperlink(Me.ConsultaDGV, "Select$" + e.Row.RowIndex.ToString())
End If
End Sub

1 Respuesta

Respuesta
1

¿Puedes indicarme exactamente qué es lo que quieres hacer en el evento RowCreated?

Buenos Días experto lo que quiero es marcar la fila seleccionada en el listview

No entiendo a que te refieres con "marcar la fila seleccionada". El ListView ya debe marcar la fila seleccionada en color azul por defecto.

¿Puedes describirme exactamente qué quieres hacer para que pueda responder mejor a tu pregunta?

Es que el ListView en web no me marca la fila en color azul

Hace mucho que no trabajo con esos controles así que no lo recuerdo bien aunque me parece extraño.

En fin, te convierto el código que me pusiste en el primer mensaje para un ListView:

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
     if (e.Item.ItemType == ListViewItemType.DataItem)
     {
        e.Row.Attributes.Add("onmouseover", "this.originalstyle=this.style.backgroundColor;this.style.backgroundColor='#C1DAD7';")
        e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=this.originalstyle;")
    }
}

Por lo visto este código lo que hace es añadir un estilo para cuando el ratón pasa por encima.

experto Row no es una propiedad del ListView

Tienes razón, el ListView no tiene Row's como el GridView.

Para hacer lo que quieres tienes que hacer algo un poco más complejo.

Primero debes modificar el ItemTemplate del ListView para añadir un Panel para posteriormente añadirle el onmouseover, por ejemplo:

<ItemTemplate>
    <asp:Panel ID="panelEnvolvente" runat="server">
        <%# Eval("nombre del campo a mostrar") %>
    </asp:Panel>
</ItemTemplate>

Luego, en el ItemDataBound, buscamos el panel y le aplicamos los atributos:

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
     if (e.Item.ItemType == ListViewItemType.DataItem)
     {
        Panel panelEnvolvente = e.Item.FindControl("panelEnvolvente") as Panel;
        panelEnvolvente.Attributes.Add("onmouseover", "this.originalstyle=this.style.backgroundColor;this.style.backgroundColor='#C1DAD7';")
        panelEnvolvente.Attributes.Add("onmouseout", "this.style.backgroundColor=this.originalstyle;")
     }
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas