在jQuery或Javascript中有类似于“if(!Page.IsPostBack)”这样的东西吗?

9
有没有一种方法可以检测页面加载时是否是回发(postback)还是初始加载?

像 .Net 的 postback 一样吗? - Russ Clarke
这个问题被问了很多次,这里接受的答案是James建议的一个很好的例子:https://dev59.com/4nVD5IYBdhLWcg3wL4cA - Russ Clarke
@Russ 我想这个问题已经被问过很多次了,但我找不到任何相关的参考资料。 - FarFigNewton
2个回答

16

JavaScript 没有后台提交的概念。最简单的客户端方式是让[在此插入您的服务器端语言] 在后台提交时编写/设置一个 JavaScript 变量以检测。

在 C# 中,看起来会像这样:

ClientScript.RegisterClientScriptBlock(GetType(), 
         "isPostBack", 
         String.Format("var isPostback = {0};", IsPostBack.ToString().ToLower()),
         true);

JavaScript:

if(isPostback) {
     // Postback specific logic here
}

1

我使用了一个asp:hiddenfield,在页面加载时获取其值。

在客户端,您可以使用jQuery将该值作为字符串获取,并将其与“true”进行比较,从而得到布尔值。

HTML:

<asp:HiddenField runat="server" ID="hdnIsPostback" />

VB.NET(在Page_Load中):

Me.hdnIsPostback.Value = Me.IsPostBack

Javascript:

var isPostback = $("#<%=hdnIsPostback.ClientID%>").val().toLowerCase() === "true";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接