Условно добавить внешние ссылки CSS / Javascript - PullRequest
0 голосов
/ 04 декабря 2011

Мне нужно добавить ссылки в заголовок страницы ASPX на основе серверной функции, вызываемой из Page_Load() главной страницы.Весь сайт использует одну и ту же главную страницу.

Какой лучший способ сделать это?

Элемент управления <asp:Literal> в <head>?

Ответы [ 3 ]

1 голос
/ 04 декабря 2011

В прошлом я успешно делал подобные вещи.

<link rel="Stylesheet" type="text/css" href="<%= System.Configuration.ConfigurationManager.AppSettings["dhxStyle"] %>" />
1 голос
/ 04 декабря 2011

Возможно, слишком поздно, но у подхода, представленного ниже, есть то преимущество, что один и тот же скрипт никогда не добавляется дважды.

public static void RegisterClientScriptInclude(Page page, string name, string url)
{
    Type cstype = page.GetType();

    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = page.ClientScript;

    // Check to see if the include script exists already.
    if (!cs.IsClientScriptIncludeRegistered(cstype, name))
    {
        cs.RegisterClientScriptInclude(cstype, name, page.ResolveClientUrl(url));
    }
}

Это пригодится, если вы добавляете внешние файлы javascript из разных пользовательских элементов управления по мере необходимости.основа.

1 голос
/ 04 декабря 2011

Есть много способов сделать это:

  1. В вашем методе Page_Load, программно откройте заголовок вашей главной страницы, например:

    HtmlGenericControl style = new HtmlGenericControl("link");
    style.Attributes.Add("href", "path-to-your-style");
    style.Attributes.Add("rel", "stylesheet");
    style.Attributes.Add("type", "text/css");
    this.Page.Header.Controls.AddAt(0, style);
    
  2. Второй способ - добавить атрибут runat='server' к вашим условным стилям в голове, а в вашем методе Page_Load включить или выключить их visibility :

    <link type='text/css' rel='stylesheet' href='path-to-css-file' 
    runat='server' id='cssFile' />
    

    тогда в вашем Page_Load у вас есть:

    if (conditionIsNotMet)
    {
        cssFile.Visible = false;
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...