Est-il possible d'enregistrer 2 via RegisterClientScriptBlock dans stylesheets un contrôle personnalisé ASP.NET (C #)?

StackOverflow https://stackoverflow.com/questions/5808845

Question

Je travaille sur un contrôle personnalisé ASP.NET qui utilise beaucoup de JavaScript et CSS. Pour des raisons de maintenance, il est plus facile de garder les fichiers séparés. Avant que je déclare mon espace de noms, j'ai le code suivant:

[assembly: WebResource("MyNamespace.Styles.colorbox.css", "text/css", PerformSubstitution = true)]
[assembly: WebResource("MyNamespace.Styles.pagination.css", "text/css")]

Les fichiers CSS sont évidemment dans un sous-dossier appelé Styles. Je suis en train de les enregistrer dans le OnInit de ma page en utilisant le code suivant:

// Register colorbox css
cssColorbox = "<link href=\"" + Page.ClientScript.GetWebResourceUrl(typeof(DoctypeSelectorControl), "MyNamespace.Styles.colorbox.css") + "\" type=\"text/css\" rel=\"stylesheet\" />";
            this.Page.ClientScript.RegisterClientScriptBlock(typeof(DoctypeSelectorControl), "cssFile", cssColorbox, false);

// Register pagination css
cssPagination = "<link href=\"" + Page.ClientScript.GetWebResourceUrl(typeof(DoctypeSelectorControl), "MyNamespace.Styles.pagination.css") + "\" type=\"text/css\" rel=\"stylesheet\" />";
            this.Page.ClientScript.RegisterClientScriptBlock(typeof(DoctypeSelectorControl), "cssFile", cssPagination, false);

Les première charge parfaitement, mais je ne vois même pas un lien pour le second (pagination.css). Je ne sais pas si cela a été limité à un fichier de cette façon ou s'il y a une meilleure façon de gérer cela.

Pour votre information:. DoctypeSelectorControl est le nom de la classe si ce n'était pas évident

Merci pour votre aide!

Était-ce utile?

La solution

Je l'ai fait quelque chose de similaire dans un projet que je travaillais sur là où je devais passer mon CSS à une bibliothèque de code partagé. J'ai pu injecter plusieurs fichiers, le code ci-dessous est un exemple de ce que je faisais. Assurez-vous de spécifier vos fichiers CSS en tant que ressources intégrées.

        string cssColorbox = Page.ClientScript.GetWebResourceUrl(this.GetType(),
            "MyNamespace.Styles.colorbox.css");

        string cssPagination = Page.ClientScript.GetWebResourceUrl(this.GetType(),
          "MyNamespace.Styles.pagination.css");


        HtmlGenericControl colorboxCss = new HtmlGenericControl("link");
        colorboxCss.Attributes.Add("href", cssColorbox);
        colorboxCss.Attributes.Add("type", "text/css");
        colorboxCss.Attributes.Add("rel", "stylesheet");


        HtmlGenericControl paginationCss = new HtmlGenericControl("link");
        paginationCss.Attributes.Add("href", cssPagination);
        paginationCss.Attributes.Add("type", "text/css");
        paginationCss.Attributes.Add("rel", "stylesheet");


        Page.Header.Controls.Add(colorboxCss);
        Page.Header.Controls.Add(paginationCss);

Autres conseils

Je pense que votre question réelle, dans le message original, que vous utilisiez la même clé. Bizarrement, cependant, je me serais attendu à la deuxième Ecraser la première.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top