динамический Javascript в asp.net

колодца. Проблема, с которой я столкнулся, заключается в том, что у меня есть собственный настраиваемый элемент управления, и я делаю запрос, получаю записи и динамически добавляю элементы управления html на страницу на основе данных.

Теперь возникла проблема с добавлением динамического JavaScript.

Я делаю это с помощью буквальных элементов управления.

<asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>

Это работает как шарм.

<script language="javascript" type="text/javascript">
// <![CDATA[
    Sys.Application.add_load(WireEvents_<%=this.ID%>); // fix wiring for .NET ajax updatepanel
    $(WireEvents_<%=this.ID%>); // handle page load wiring

    function WireEvents_<%=this.ID%>() {
        <asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>
    }

// ]]>
</script>

Я добавляю буквальный текст динамически из исходного кода.

Однако при размещении элемента управления на панели обновления обратная передача не обновляет скрипт.

РЕДАКТИРОВАТЬ: Sys.Application.add_load просто перепрограммирует необходимые функции с помощью панели обновления. Проблема в том, что сценарий, который должен быть вместо литерала, не обновляется в панели обновления.

Я пробовал ClientScript.RegisterStartupScript, но он имеет тот же эффект, что и уловка с буквальным управлением. Любая помощь?

--------------------------- РЕШЕНО (спасибо Праная Рана) ---------- ------------------------

Избавлен от литерала в ascx-стороне. а также Sys.Application.add_load

теперь только в коде. Меня сбивал с толку JQuery.

this.strBuilderJS.Append( "<script language='javascript' type='text/javascript'>" +
                                "$(WireEvents_" + this.ID + ");" + 
                                "function WireEvents_" + this.ID + "(){"+
                                "    alert('stuff');");

this.strBuilderJS.Append(       "}</script>");

, а затем

ScriptManager.RegisterStartupScript(this, this.GetType(), "strBuilderJS", strBuilderJS.ToString(), false);
5
задан robert 2 June 2011 в 09:22
поделиться