Saltar al contenido

C# – Cómo cambiar elementos HTML attributes

Ya no necesitas indagar más en otras webs ya que estás al sitio exacto, contamos con la respuesta que buscas y sin complicaciones.

Solución:

Para acceder a estos controles desde el lado del servidor, debe hacerlos runat=”server”


en el código subyacente:

foreach(Control ctrl in nav.controls)

   if(!ctrl is HtmlAnchor)
   
      string url = ((HtmlAnchor)ctrl).Href;
      if(url == GetCurrentPage())  // <-- you'd need to write that
         ctrl.Parent.Attributes.Add("class", "active");
   

El siguiente código se puede usar para encontrar un control con nombre en cualquier lugar dentro de la jerarquía de control:

public static Control FindControlRecursive(Control rootControl, string id)

    if (rootControl != null)
    
        if (rootControl.ID == id)
        
            return rootControl;
        

        for (int i = 0; i < rootControl.Controls.Count; i++)
        
            Control child;

            if ((child = FindControlRecursive(rootControl.Controls[i], id)) != null)
            
                return child;
            
        
    

    return null;

Así que podrías hacer algo como:

Control foundControl= FindControlRecursive(Page.Master, "theIdOfTheControlYouWantToFind");
((HtmlControl)foundControl).Attributes.Add("class", "active");

Olvidé mencionar previamente que necesita runat="server" en cualquier control que desee poder encontrar de esta manera =)

Agregue runat="server" en las etiquetas li en la página maestra y luego agregue esto al evento page_load apropiado para agregar la clase 'activa' a li en la página maestra

HtmlGenericControl li = HtmlGenericControl)Page.Master.FindControl("capturas de pantalla"); li.Attributes.Add("clase", "activo");

Recuerda algo, que tienes la opción de parafrasear si diste con el resultado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *