ASP.NET динамично вводит код в голову

Я работаю в Управлении Интернет-пользователя (.ascx), который будет включенным в обычную веб-форму (.aspx), но я должен быть в состоянии динамично ввести код в заголовок документа от Пользовательского элемента управления. В мои дни Coldfusion <cfhtmlhead> добился бы цели. Существует ли эквивалент этого в ASP.NET или подобном взломе?

20
задан Kyle 30 December 2009 в 19:54
поделиться

3 ответа

Для добавления HTML-разметки вы можете сделать следующее:

В вашем коде UserControl вы можете получить доступ к Page.Header, который сам по себе является элементом управления. В этот элемент управления вы можете добавить новые элементы управления:

HtmlGenericControl newControl = new HtmlGenericControl("someTag");
newControl.Attributes["someAttr"] = "some value";
Page.Header.Controls.Add(newControl);

Для добавления разметки сценария вам вообще не нужен доступ к заголовку тэга, так как ASP.NET имеет вспомогательные методы на ClientScriptManager, которые делают работу за вас:

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

// Register some inline script:
Page.ClientScript.RegisterClientScriptBlock(GetType(), "myAlertScript", "alert('hello!')", true);

// Register a script reference:
Page.ClientScript.RegisterClientScriptInclude(GetType(), "myLibraryScript", "~/Scripts/MyScriptLibrary.js");
35
ответ дан 29 November 2019 в 22:56
поделиться
this.Page.Header.Controls.Add

Делая это, вы добавляете элементы управления в головную секцию. Вы можете добавить любой тип управления. Если Вы чувствуете, что Вам нужно добавить простой текст (или Вы хотите записать теги вручную), то обратите внимание на класс LiteralControl.

9
ответ дан 29 November 2019 в 22:56
поделиться
Другие вопросы по тегам:

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