Программно добавляющий Файл JavaScript к Пользовательскому элементу управления в .NET

Я знаю, что это вопрос 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
}
16
задан sarsnake 6 February 2009 в 18:48
поделиться

6 ответов

В методе 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 = "сервер".

26
ответ дан 30 November 2019 в 16:01
поделиться

Можно зарегистрироваться, клиентский сценарий включает использование ClientScriptManager. Страница доступна посредством Управления. Свойство Page.

Page.ClientScript.RegisterClientScriptInclude (
  typeof ( MyControl ), "includeme.js", "js/includeme.js"  );

РЕДАКТИРОВАНИЕ: Извините, для общего количества "завершают пакет", его возможные сценарии использования как Встроенные Ресурсы, и aquire динамический URL через обработчик WebResource.axd. Если это не считают полностью завершенным, то я предполагаю, что это могло быть помещено в App_LocalResources, но это никогда собирающийся быть всего одним файлом, если код и сценарий не встроены.

8
ответ дан 30 November 2019 в 16:01
поделиться

Хороший вопрос!

А UserControl должен быть единственным пакетом без любой зависимости от JavaScript или файла CSS. Необходимо будет сделать JS и файлы CSS как встроенные ресурсы. Щелкните правой кнопкой по свойствам и установите действие сборки на встроенные ресурсы. Затем необходимо ввести JavaScript и файлы CSS как WebResources.

Вот одна статья, которую я вчера написал который переговоры о том же сценарии:

http://highoncoding.com/Articles/502_Creating_RadioButton_Validation_Using_Custom_Validator.aspx

2
ответ дан 30 November 2019 в 16:01
поделиться

Я обычно делаю это при рендеринге 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]);
    }
0
ответ дан 30 November 2019 в 16:01
поделиться

Если у Вас есть текст фактического JavaScript в Вашем.CS файле, можно позвонить Page. ClientScript. RegisterClientScriptBlock.

следующее предполагает, что "GetScript ()" возвращается фактический JavaScript, который Вы хотите добавленный к представленному управлению.

Page.ClientScript.RegisterClientScriptBlock(GetType(), "controlScriptName", GetScript());
0
ответ дан 30 November 2019 в 16:01
поделиться

То же, что и ответ 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

6
ответ дан 30 November 2019 в 16:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: