2010-06-04 21 views
7

Sto sviluppando un controllo personalizzato che è una composizione di tabelle e pulsanti. Ho anche un foglio di stile CSS esterno che definisce gli stili per questi elementi.Collegamento di un foglio di stile CSS con un controllo personalizzato ASP.NET

tipi del controllo è CompositeControl, sotto namespace MyControls e la definizione della classe è in un file di classe CompositeControl.cs e il file DLL generato è chiamato MyControls.dll

Il il foglio di stile è chiamato styles.css e si trova nella stessa cartella di CompositeControl.cs

Per ogni controllo (Pulsante, TableCell, ecc.), ho specificato d la proprietà CssClass.

Quando aggiungo questo controllo alla mia pagina Web ASP.NET e controllo l'origine HTML quando viene eseguito su localhost, vedo che tutti i tag di controllo hanno l'attributo di classe impostato correttamente, ma l'origine non include il tag <link> che è necessario per includere un foglio di stile esterno.

Qualcuno potrebbe dirmi cos'altro ho bisogno di fare per farlo funzionare? Grazie.

risposta

7

I file di origine esterni non sono inclusi automaticamente nella pagina. È necessario registrarsi manualmente all'interno del controllo alla pagina:

HtmlLink cssSource = new HtmlLink(); 
cssSource.Href = Page.ClientScript.GetWebResourceUrl(this.GetType(), "styles.css"); 
cssSource.Attributes["rel"] = "stylesheet"; 
cssSource.Attributes["type"] = "text/css"; 
Page.Header.Controls.Add(cssSource); 

anche cercare di utilizzare ClientScriptManager.GetWebResourceUrl per ottenere la posizione della vostra risorsa incorporata. Ecco an example di riferimento a una risorsa incorporata.

+0

Grazie. Ha funzionato. –

+0

Dopo aver utilizzato GetWebResourceUrl, il foglio di stile non viene collegato. –

+0

@wacky_coder: Sì, ora vedo il problema, il primo parametro, il parametro type, dovrebbe essere il contenitore della risorsa. In questo caso il tipo del tuo controllo. – Canavar

Problemi correlati