Domanda

Ciao ragazzi,

Ho utilizzato il controllo Trova per trovare un elemento di elenco di un elenco non ordinato all'interno di una pagina master dalla pagina di contenuto utilizzando questo,

Control home = this.Page.Master.FindControl("list").FindControl("home");

Ora devo cambiare l'id della home di controllo in "corrente" perché per applicare i CSS ....

È stato utile?

Soluzione

Non si conosce il tipo di controllo si sta trovando? Né controllo né ListItem esporre una proprietà CssClass, tuttavia, non esporre ListItem è Attributi proprietà.

Aggiornamento sulla base di commento e altra domanda :

Si deve usare System.Web.UI.HtmlControls.HtmlGenericControl

Quindi, qualcosa di simile dovrebbe funzionare per voi:

HtmlGenericControl home = 
                    this.Page.Master.FindControl("list").FindControl("home")
                                                         as HtmlGenericControl;

string cssToApply = "active_navigation";

if (null != home) {
  home.Attributes.Add("class", cssToApply);
}

Se si pensa che ci potrebbe essere già una classe assegnata ad esso che è necessario aggiungere a voi potrebbe fare qualcosa di simile:

if (null != home) {
  if (home.Attributes.ContainsKey("class")) {
    if (!home.Attributes["class"].Contains(cssToApply)){
      // If there's already a class attribute, and it doesn't already
      // contain the class we want to add:
      home.Attributes["class"] += " " + cssToApply;
    }
  }
  else {
    // Just add the new class
    home.Attributes.Add("class", cssToApply);
  }
}

Se non sono ListItems, le precipitava il tipo corretto, e modificare la raccolta attributi come prima, a meno che non ci sia una proprietà CssClass per quel tipo.

Altri suggerimenti

Sì, utilizzare gli ID CSS in asp.net è un grosso problema.prima di tutto puoi modificare l'ID del controllo server in quello che desideri, ma questo verrà rigenerato da ASP.NET a seconda della posizione del controllo nell'albero di controllo della tua pagina.

Il mio consiglio è di utilizzare la proprietà cssclass dei controlli e di sostituire gli ID CSS con class.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top