Как иметь элемент управления asp.net asp.net автоматически ссылаться на файлы CSS - PullRequest
1 голос
/ 13 января 2010

Мне было интересно, возможно ли, чтобы пользовательский пользовательский контроль ASP.NET AJAX «регистрировал» его использование CSS-файлов, как это происходит с JS-файлами.

Например: реализация интерфейса IScriptControl позволяет вызывать GetScriptReferences () из диспетчера сценариев. Есть ли похожая вещь для файлов CSS?

1 Ответ

2 голосов
/ 13 января 2010

номер

Вы можете написать свои собственные методы для использования встроенных ресурсов и сгенерировать html для записи их на страницу.

Как лучший подход, я бы не рекомендовал это. У вас должно быть четкое разделение стиля и разметки. Если вы хотите написать собственный элемент управления, который зависит от таблицы стилей, я предлагаю вам предоставить файл css по умолчанию вместе с вашим элементом управления.

РЕДАКТИРОВАТЬ (ответить на вопросы в комментариях)

Вы можете запустить этот код, чтобы добавить ссылку на файл CSS на свою страницу (во время выполнения). Обратите внимание, что поскольку вы используете RegisterClientScriptBlock метод , вы можете управлять дублированием вставки. Вот выдержка из ссылки на метод:

Клиентский скрипт уникально идентифицируется по его ключу и типу. Сценарии с одинаковым ключом и типом считаются дубликатами. Только один скрипт с данным типом и парой ключей может быть зарегистрирован на странице. Попытка зарегистрировать сценарий, который уже зарегистрирован, не создает дубликата сценария.

StringBuilder sb = new StringBuilder();

sb.Append(@"<link rel=""stylesheet"" type=""text/css"" href=""");
sb.Append(this.Page.ClientScript.GetWebResourceUrl(this.GetType(), resourceName));
sb.Append(@""" />");

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyCSS", sb.ToString());
...