【问题标题】:ASP.NET UpdatePanel PreRender issuesASP.NET UpdatePanel PreRender 问题
【发布时间】:2014-02-02 19:14:08
【问题描述】:

我有一个使用 ASP.NET C# 进行服务器端脚本的网站,其中大部分服务器控件在 Page_Init 事件期间动态添加到页面上的 UpdatePanel 控件。以下sn-p的代码:

contentPanel.ContentTemplateContainer.Controls.Add(new LiteralControl("<script>" + clientScriptText + "</script>"));

存在于我的 Page_Init 事件中(contentPanel 是我的 UpdatePanel 的名称)。这个想法是,这将允许我从后面的代码中运行 JavaScript 'alert()' 函数——通过将“alert(\"--string--\")”设置为 'clientScriptText' 的值。我已经通过将此代码放入 UpdatePanel 的 PreRender 事件中对此进行了测试(因为它是 UpdatePanel 而不是页面的 PreRender 事件,所以它不应该是导致问题的 ASP.NET 页面生命周期因素,不是吗?),但是虽然事件触发,当页面呈现时不出现警报。我的代码如下所示:

protected void contentPanel_PreRender(object sender, EventArgs e)
        {
            clientScriptText = "alert(\"Hello\")";
            contentPanel.Update();  //Doesn't work with or without this
        }

任何人都可以看到可能有什么问题吗?谢谢。

【问题讨论】:

标签: c# asp.net updatepanel page-lifecycle


【解决方案1】:

您必须使用ScriptManager 运行您的JavaScript 代码。 UpdatePanel 有自己特定的生命周期和渲染技术,而 ScriptManager 正是为了解决 JS 代码的问题而创建的。在 UpdatePanel 之外,您应该使用 ClientScriptManager

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 2012-07-03
    相关资源
    最近更新 更多