Я знаю, что это вопрос Swift, но я нашел, что он ищет код Objective-C, поэтому другие могут тоже.
-(void) viewDidLoad
{
[NSTimer scheduledTimerWithTimeInterval:1 // update more than once a second to appear in sync with the system clock
target:self
selector:@selector(updateTimes:)
userInfo:nil
repeats:YES];
}
-(void) updateTimes:(NSTimer *)timer
{
// Update Widget UI as required
}
В методе Page_Load control.ascx.cs файла:
LiteralControl jsResource = new LiteralControl();
jsResource.Text = "<script type=\"text/javascript\" src=\"js/mini-template-control.js\"></script>";
Page.Header.Controls.Add(jsResource);
HtmlLink stylesLink = new HtmlLink();
stylesLink.Attributes["rel"] = "stylesheet";
stylesLink.Attributes["type"] = "text/css";
stylesLink.Href = "css/mini-template-control.css";
Page.Header.Controls.Add(stylesLink);
Это загрузит CSS и JavaScript в главный тег основной страницы, просто удостоверьтесь, что голова имеет runat = "сервер".
Можно зарегистрироваться, клиентский сценарий включает использование ClientScriptManager. Страница доступна посредством Управления. Свойство Page.
Page.ClientScript.RegisterClientScriptInclude (
typeof ( MyControl ), "includeme.js", "js/includeme.js" );
РЕДАКТИРОВАНИЕ: Извините, для общего количества "завершают пакет", его возможные сценарии использования как Встроенные Ресурсы, и aquire динамический URL через обработчик WebResource.axd. Если это не считают полностью завершенным, то я предполагаю, что это могло быть помещено в App_LocalResources, но это никогда собирающийся быть всего одним файлом, если код и сценарий не встроены.
Хороший вопрос!
А UserControl должен быть единственным пакетом без любой зависимости от JavaScript или файла CSS. Необходимо будет сделать JS и файлы CSS как встроенные ресурсы. Щелкните правой кнопкой по свойствам и установите действие сборки на встроенные ресурсы. Затем необходимо ввести JavaScript и файлы CSS как WebResources.
Вот одна статья, которую я вчера написал который переговоры о том же сценарии:
http://highoncoding.com/Articles/502_Creating_RadioButton_Validation_Using_Custom_Validator.aspx
Я обычно делаю это при рендеринге HTML для управления и в зависимости от того, является ли это инжекцией библиотеки или инжекцией экземпляра, которую я использую набор Объектов, чтобы указать, произвел ли я уже код для управления этого типа во время текущего запроса с помощью уникального идентификатора.
Что-то к эффекту:
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
//Check if the Object Script has already been rendered during this request.
if (!Context.Items.Contains("xxx"))
{
//Specify that the Object Script has been rendered during this request.
Context.Items.Add("xxx", string.Empty);
//Write the script to the page via the control
writer.Write([libraryinjection]);
}
//Write the script that instantiates a new instance for this control
writer.Write([instanceinjection]);
}
Если у Вас есть текст фактического JavaScript в Вашем.CS файле, можно позвонить Page. ClientScript. RegisterClientScriptBlock.
следующее предполагает, что "GetScript ()" возвращается фактический JavaScript, который Вы хотите добавленный к представленному управлению.
Page.ClientScript.RegisterClientScriptBlock(GetType(), "controlScriptName", GetScript());
То же, что и ответ gnomixa, только немного чище:
HtmlGenericControl js = new HtmlGenericControl("script");
js.Attributes["type"] = "text/javascript";
js.Attributes["src"] = "jscript/formfunctions.js";
Page.Header.Controls.Add(js);
from http://www.aspdotnetfaq.com/Faq/How-to-Programmatically-add-JavaScript-File-to-Asp-Net-page.aspx