2010-01-20 1 views
0

Я создаю несколько пользовательских элементов управления (ASCX) для своего сайта, и некоторые из них очень похожи в том, что они делают. (Как примечание, я должен создать уникальные UC, даже если они похожи, потому что я создаю виджеты для новой системы комментариев сообщества Telligent). Например, два из них отличаются друг от друга, но используют один и тот же код переднего плана, чтобы создать панель вкладок 2 или 3, где вы можете щелкнуть вкладку, и она изменит данные ниже. У меня есть один JS-файл для обработки этих вкладок и анимаций. Я в настоящее время динамически добавлять мои ссылки JS файла в <head> из кода пользовательских элементов управления с помощью:Определить, если файл JavaScript уже включен через пользовательский элемент управления

Literal jsFile = new Literal(); 
jsFile.Text = string.Format("<script src=\"{0}\"></script>", "/community/themes/test/js/tabbedCallout.js"); 
Page.Header.Controls.Add(jsFile); 

Если у меня есть оба эти элементы управления на странице, хотя, как будет добавить этот JS ссылки на файл. Как я могу проверить, добавлен ли он из другого элемента управления?

ответ

5

Почему вы не используете Page.ClientScript.RegisterClientScriptBlock (как описано здесь: http://msdn.microsoft.com/en-us/library/btf44dc9.aspx)?
Таким образом, вы можете добавить ключ к каждому скрипту, который вам нужен, и определить скрипт по его ключу!

+1

+1: FTD: «Попытка зарегистрировать скрипт, который уже зарегистрирован, не создает дубликат скрипта». - Просто используйте один и тот же ключ каждый раз, когда вы регистрируете данный JS-файл. Он будет добавлен только на страницу один раз. – lance