Динамически добавленный JavaScript не оценивается в элементе управления ascx - PullRequest
0 голосов
/ 06 марта 2012

У меня есть элемент управления ascx, в котором во время разработки помещен литерал.Во время выполнения в Page_Load я устанавливаю текстовое свойство литерала в javascript, который я извлекаю из базы данных.Тем не менее, похоже, что код JavaScript не оценивается.Что мне нужно сделать, чтобы оценить скрипт?

В .ascx:

<asp:Literal id="litTags" runat="server"></asp:Literal>

В ascx.cs:

protected void Page_Load(object sender, EventArgs e)
  {
      //Set literal's text to the script
      litTags.Text = "Javascript tag and script from database";
  }

Ответы [ 3 ]

1 голос
/ 06 марта 2012

Убедитесь, что вы завернули этот код js в соответствующий тег:

<script type="text/javascript">'
// js code here
</script>
0 голосов
/ 07 марта 2012

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

Следующие оценки ожидаются:

protected void Page_Load(object sender, EventArgs e)    {

        StringBuilder sb = new StringBuilder();

        sb.Append("<script type='text/javascript'>" + Environment.NewLine);
        sb.Append("alert('hello world');" + Environment.NewLine);
        sb.Append("</script>" + Environment.NewLine);

        litTags.Text = sb.ToString();

}
0 голосов
/ 06 марта 2012

Это необходимо сделать с помощью ClientScript.RegisterClientScriptMethod.

Добавить ScriptManager на главной или родительской странице.

Затем использовать этот код (ссылка: http://msdn.microsoft.com/en-us/library/bahh2fef.aspx)

Page.ClientScript.RegisterClientScriptBlock (this.GetType (), "scriptname", "var variable = '" + dbVar + "';", True);

или, если используется как стартовый скрипт(ссылка: http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx)

ClientScript.RegisterStartupScript (this.GetType (), "scriptname", "var variable =" "+ dbVar +" '; ", True);

Youтаким образом буквальный контроль не нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...