Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическое добавление кода в раздел head 
V
    Опции темы
korob2001
Дата 27.8.2008, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Привет!
Пишу сайт и столкнулся с такой проблемой. Собираю контен страницы в MasterPage. Код HTML выглядит следующим образом:
Код

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="dsm.master.cs" Inherits="dsmbelgium.dsm" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="Stylesheet" href="styles/main.css" />
    <title></title>
    <script type="text/javascript" src="scripts/js/langmenu.js"></script>
    <script type="text/javascript" src="scripts/js/movemessage.js"></script>
    <asp:Label Id="objMoveMessages" runat="server"></asp:Label>
    <asp:ContentPlaceHolder ID="contentHead" runat="server">
    </asp:ContentPlaceHolder>
</head>

Я не стал здесь приводить код всей страницы, так как с ним всё нормально. Здесь прошу обратить внимание на два момента:
Код

<asp:ContentPlaceHolder ID="contentHead" runat="server">
</asp:ContentPlaceHolder>

В этот ContentPlaceHolder, некоторых страницах, вставляю код на JavaScript. С ним тоже всё как бы нормально. Проблема в следующем:
Код

<asp:Label Id="objMoveMessages" runat="server"></asp:Label>

Сюда тоже вставляется код на JavaScript, но он строится динамически кодом того же MasterPage на C#, который в свою очередь берёт информацию из dll библиотеки, которая считывает информацию из XML файла.

Вот код C#, который создаёт этот код JavaScript и вставляет его в эту метку.
Код

private void createMoveMessages()
        {
            International.MoveMessages mMess = new International.MoveMessages(Server.MapPath(@"~\xdoc\MoveMessages.xml"), this.currentCode);
            StringBuilder sb = new StringBuilder();
            sb.Append("<script type=\"text/javascript\">\n");
            sb.Append("<!--//\n");

            International.Message[] messages = mMess.Messages;

            sb.Append("\nvar messages = new MoveMessages(\"moved\"," + mMess.Timeout + ");\n");
            for (int i = 0; i < messages.Length; i++)
            {
                sb.Append("messages.Add(new MoveMessage(\"" + messages[i].Msg + "\"," + messages[i].Speed + "));\n");
            }
            sb.Append("//-->\n");
            sb.Append("</script>\n");
           
            objMoveMessages.Text = sb.ToString();
}

Собственно всё работает, но проблема в том, что в контенте это сгенерированный код появляется внутри тегов <span ...>код JavaScript</span>, что на мой взгляд не есть гуд для раздела <head></head>.

Пробовал генерировать весь контент раздела <head></head> программно, всё как бы работает, но тут я сталкнулся с другими трудностями. ContentPlaceHolder, о котором я писал выше исчезает из HTML кода MasterPage, так как программно у меня получилось только заменить весь контен раздела <head></head>, а не добавить к уже имеющемуся.

Вопросы такие:
Есть ли какой-нить аналог <asp:Label ....></asp:Label>, но только что бы он  не вставлял никаких тегов, что бы его можно было использовать в разделе <head>?
Можно ли каким-нить образом не заменять весь имеющийся контент раздела <head></head>, а просто добалять к нему? Например есть код:
Код

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="dsm.master.cs" Inherits="dsmbelgium.dsm" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="Stylesheet" href="styles/main.css" />
    <title></title>
    <script type="text/javascript" src="scripts/js/langmenu.js"></script>
    <script type="text/javascript" src="scripts/js/movemessage.js"></script>
    <asp:ContentPlaceHolder ID="contentHead" runat="server">
    </asp:ContentPlaceHolder>

    <!--// Вот сюда что-то добавить из кода MasterPage на C# //-->
</head>
 
Возможно я что-то не совсем правильно пояснил, так как не силён пока в ASP.NET. Если что-то не понятно, пишите. Постараюсь перефразировать свои вопросы.

Это сообщение отредактировал(а) korob2001 - 27.8.2008, 15:47


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
PashaPash
Дата 27.8.2008, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 7
Всего: 49



korob2001, <asp:Literal...


--------------------
PM MAIL WWW   Вверх
korob2001
Дата 28.8.2008, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



PashaPash, спасибо огромное. Коротко, ясно и именно то, что нужно. smile))))


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0417 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.