在c# /ASP.net中注销javascript块

本文关键字:注销 javascript net ASP | 更新日期: 2023-09-27 18:06:33

在注册和取消注册javascript代码块时遇到问题。我如何取消注册gridqarefreshexposure report?

  1. 下面的代码将显示一个单选按钮列表,当我的网格的数据源为空。
  2. 选择后,页面将刷新,数据源和网格将被填充,单选按钮列表将由于GRIDqrarefreshexposurereport而隐藏。

  3. 单击取消按钮后,数据源被设置为null,页面被重新加载,网格为空,单选按钮列表从未出现,即使他们应该。

已经调试了代码,并且它通过正确的代码块运行,但是当我查看我的ASP.net页面的源代码时,javascript的两个块都存在,gridqrarefresh敞口报告块最后出现,这就是为什么我认为单选按钮列表没有重新出现。

如果有什么不清楚的地方,我将尽我所能澄清,任何关于如何使这一点更清楚的建议我都乐意接受。

if (gridExposureList.DataSource == null)
{
    ClientScript.RegisterStartupScript(this.GetType(), "qrarefreshexposurereport",                                  // Framework 2.0 conversion
            @"<script language=""javascript"" type=""text/javascript"">
                        document.getElementById(""NoFilter"").style.display = ""None"";
                        document.getElementById(""RefreshEventsSummaryTiming"").style.display = ""none"";
                        document.getElementById(""RefreshEventsSummaryXPOS"").style.display = ""none"";
                        document.getElementById(""RefreshEventsSummaryFilter"").style.display = """";
                        document.getElementById(""QRAList"").style.display = ""none"";
        document.getElementById(""RefreshExpRepFilter"").style.display = """";
        document.getElementById(""GridButtons"").style.display = ""none"";
                        </script>
                        ");
}
else
{
    ClientScript.RegisterStartupScript(this.GetType(), "GRIDqrarefreshexposurereport",                                  // Framework 2.0 conversion
        @"<script language=""javascript"" type=""text/javascript"">
                    document.getElementById(""NoFilter"").style.display = ""None"";
                    document.getElementById(""RefreshEventsSummaryTiming"").style.display = ""none"";
                    document.getElementById(""RefreshEventsSummaryXPOS"").style.display = ""none"";
                    document.getElementById(""RefreshEventsSummaryFilter"").style.display = """";
                    document.getElementById(""QRAList"").style.display = ""none"";
    document.getElementById(""RefreshExpRepFilter"").style.display = ""none"";
    document.getElementById(""GridButtons"").style.display = """";
                    </script>
                    ");
}

在c# /ASP.net中注销javascript块

由于ClientScript.RegisterStartupScript方法在每个post上注册代码块,因此似乎不需要取消注册/取消注册脚本块方法。如果你不想让任何代码块被注册,那就不要注册它。

只是一个猜测,你粘贴的上面的代码存在于Page_Load方法中,如果是这样的话,为什么你有这个问题是有意义的,当post back发生设置gridExposureList.DataSource为null时,Page_Load方法首先执行,因为gridExposureList.DataSource不是null,但它注册GRIDqrarefreshexposurereport,然后调用事件为实际发生的post back…您可以做的是,跳过上面的代码,以防post返回,并在将网格的数据库源设置为null的事件中,添加代码以注册正确的脚本块。