Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RegisterStartUpScript-发生回发时清除代码_C#_Javascript_Updatepanel - Fatal编程技术网

C# RegisterStartUpScript-发生回发时清除代码

C# RegisterStartUpScript-发生回发时清除代码,c#,javascript,updatepanel,C#,Javascript,Updatepanel,我使用stringbuilder对象将一些javascript连接在一起,然后注册它。我的问题是,有没有一种方法可以在回发时使用客户端Javascript清除该Javascript。我发现,当使用scriptmanager注册数组时,必须清空任何动态数组,基本上我想对动态添加到页面中的javascript代码执行相同的操作?javascript有一个键(“随机列表”),所以我们必须能够引用它 ScriptManager.RegisterStartupScript(UpdatePanel_MyPu

我使用stringbuilder对象将一些javascript连接在一起,然后注册它。我的问题是,有没有一种方法可以在回发时使用客户端Javascript清除该Javascript。我发现,当使用scriptmanager注册数组时,必须清空任何动态数组,基本上我想对动态添加到页面中的javascript代码执行相同的操作?javascript有一个键(“随机列表”),所以我们必须能够引用它

ScriptManager.RegisterStartupScript(UpdatePanel_MyPublications, typeof(UpdatePanel), "randomlists", sb_javascript.ToString(), true);
让我再解释一下。我正在注册的javascript包含一些变量,在本例中是动态填充的一些其他数组。目前的错误是,这些数组是附加的,而不是重新实例化和重新填充的(大量的“重新”正在进行),如果我可以简单地清除并重新注册代码,所有的问题都会神奇地停止


谢谢。

回帖时,使用相同的名称重新注册脚本,但不同的内容(即不同的字符串生成器)应该可以工作

在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");
    }
}

如果这不起作用,请发布您的代码,以便我们可以查看您的特定场景。

在回发时,使用相同的名称重新注册脚本,但不同的内容(即不同的字符串生成器)应该可以

在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");
    }
}
如果这不起作用,请发布您的代码,以便我们可以查看您的特定场景