2011-03-11 61 views
2

我需要在前端检测回传,以便我可以在JQuery中使用它来更改页面加载时的类。我怎样才能做到这一点?如何检测前端回传(aspx)

+0

可能重复的[如何检查IsPostBack在JavaScript?](http://stackoverflow.com/questions/59719/how-can-i-check-for-ispostback-in-javascript) – 2011-03-11 23:45:51

回答

3

被盗从this post

在服务器端,有此

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

在客户端这

if(isPostBack) { 
    // do your thing 
} 
+0

不错的技巧。我一定会尝试一下。 – chobo 2011-03-11 23:53:31

+0

如何获取ClientScript对象。我输入了它,但我没有得到一个intellisense来添加一个命名空间。 – chobo 2011-03-12 00:03:13

+1

嗯,也许尝试Page.ClientScript?它是System.Web.UI的一部分:http://msdn.microsoft.com/en-us/library/system.web.ui.page.clientscript.aspx – 2011-03-12 00:17:19

7

您可以检查IsPostBack属性。例如:

<script type="text/javascript"> 
    $(function() 
    { 
     var isPostBack = <%=Page.IsPostBack.ToString().ToLower()%>; 

     if (isPostBack) 
     { 
      alert("Postback"); 
     } 
    }); 
</script> 
1

简单:

,如果你使用jQuery它去后(jQuery的推移否则坚果):

$(document).ready(function(){ 

    }); 

    var isPostBack = <%=Convert.ToString(Page.IsPostBack).ToLower()%>; 

然后

function whatever(){ 
      if (isPostBack){ 
      //Whatever you want to do 
      }else{ 
      //Whatever else you want to do 
      } 
    } 

我实际上使用它与jquery显示一个Web服务状态框,然后强制回发刷新ListView,所以当它回发它不inv oke Web服务或显示状态框只是更新的ListView数据。

0
$("a[href^='javascript:__doPostBack']").click(function() { 
    // do something 
}); 
1

我把这个变量放在我的asp.net web窗体页面的页眉标记里面。

<script type="text/javascript"> 
    var isPostBack = ("true"==="<%= Page.IsPostBack ? "true" : "false" %>"); 
</script> 

var包含一个布尔值。比较可能会缩短。