RegisterStartUpScript -回发时清除代码

本文关键字:清除 代码 -回 RegisterStartUpScript | 更新日期: 2023-09-27 18:02:03

我使用stringbuilder对象将一些javascript连接在一起,然后注册它。我的问题是,是否有一种方法使用客户端Javascript来清除Javascript时回发发生。我发现,当使用scriptmanager注册数组时,你必须清空任何动态数组,基本上我想做同样的事情,我动态添加到页面的javascript代码?javascript有一个键("随机列表"),所以我们必须能够引用它!

ScriptManager.RegisterStartupScript(UpdatePanel_MyPublications, typeof(UpdatePanel), "randomlists", sb_javascript.ToString(), true);

让我再解释一下。我注册的javascript包含一些变量,在这种情况下,一些其他数组是动态填充的。目前的错误是这些数组被附加到而不是重新实例化和重新填充(很多're'正在进行),如果我可以简单地清除和重新注册代码,所有的问题将神奇地停止…

谢谢。

RegisterStartUpScript -回发时清除代码

post back重新注册脚本使用相同的名称,但不同的内容(即。不同的字符串生成器)应该工作。

在aspx页面上,添加一个名为"Button1"的按钮,并使用以下aspx.cs作为概念证明。点击页面加载后的按钮提示"1",然后返回。再次点击按钮,你会得到一个警告"2",表明在发布后,我能够重新定义变量。

aspx.cs页面:

protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Attributes.Add("onclick", "alert(test);");
        var sb_javascript = new StringBuilder();
        var sb_javascriptPostback = new StringBuilder();
        sb_javascript.Append("var test='1';");
        sb_javascriptPostback.Append("var test='2';");
        if ((Page.IsPostBack))
        {
            ScriptManager.RegisterStartupScript(UpdatePanel_MyPublications, typeof(UpdatePanel), "randomlists", sb_javascriptPostback.ToString(),
                                                true);
        }
        else
        {
            ScriptManager.RegisterStartupScript(UpdatePanel_MyPublications, typeof (UpdatePanel), "randomlists",
                                                sb_javascript.ToString(),
                                                true);
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write("PostBack");
    }
}

如果这不起作用,请张贴您的代码,以便我们可以看看您的具体情况