当前位置:  开发笔记 > 编程语言 > 正文

如何在JavaScript中检查IsPostBack?

如何解决《如何在JavaScript中检查IsPostBack?》经验,为你挑选了4个好方法。

我需要运行一个JavaScript函数onLoad(),但只有在第一次加载页面时才会这样做(即不是回发的结果).

基本上,我需要在JavaScript中检查IsPostBack.

谢谢.



1> Jason Buntin..:

服务器端,写:

if(IsPostBack)
{
   // NOTE: the following uses an overload of RegisterClientScriptBlock() 
   // that will surround our string with the needed script tags 
   ClientScript.RegisterClientScriptBlock(GetType(), "IsPostBack", "var isPostBack = true;", true);
}

然后,在为onLoad运行的脚本中,检查该变量是否存在:

if(isPostBack) {
   // do your thing
}

你不需要设置变量,就像Jonathan的解决方案一样.客户端if语句将正常工作,因为"isPostBack"变量将是未定义的,在if语句中计算为false.


哈哈 - 重复?当你回答时,我也是.我不知道你已经回答了(我们只有一两分钟).它不像是一个独特的解决方案,它实际上是**的方式.顺便说一句,在我回答之后,我对你的评论是一个编辑 - 你可以看到历史
顺便说一句,从代码隐藏使用Page.ClientScript到达ClientScript属性.
不,我没有.也许您需要阅读我使用的过载,根据MSDN.:)

2> 小智..:

有一种更简单的方法,不涉及在后面的代码中写任何东西:只需将此行添加到您的javascript:

if(<%=(Not Page.IsPostBack).ToString().ToLower()%>){//Your JavaScript goodies here}

要么

if(<%=(Page.IsPostBack).ToString().ToLower()%>){//Your JavaScript goodies here}


我不同意这段代码很糟糕.如果你的JavaScript依赖于ASP.NET(在我的例子中,它调用PageMethods.*并使用各种嵌入的.ClientID调用来引用ASP.NET控件)那么这很好.此外,其他例子如何更便携?你指的是一个变量isPostBack,它没有伴随的代码隐藏的ASP.NET代码,没有任何意义.

3> 小智..:

你好试试以下......

function pageLoad (sender, args) {

alert (args._isPartialLoad);

}

结果是一个布尔值



4> md1337..:

该解决方案对我不起作用,我不得不对其进行调整:

protected void Page_Load(object sender, EventArgs e)
{
    string script;
    if (IsPostBack)
    {
        script = "var isPostBack = true;";
    }
    else
    {
        script = "var isPostBack = false;";
    }
    Page.ClientScript.RegisterStartupScript(GetType(), "IsPostBack", script, true);
}

希望这可以帮助。


看,那是很久以前的事了,我不记得为什么它不起作用了。我应该发布原因,但是我的时间非常有限,所以我只发布了我的修复程序。希望这将使1或2个人受益,冒着冒着质疑您2岁的解决方案的愤怒的风险。
为什么不起作用?与其提出一个不同的解决方案,不如您应该更深入地研究一下为什么它不起作用,以便至少可以将您的信息随您的改编发布在这里。
推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有