有没有一种方法可以检测页面加载时是否是回发(postback)还是初始加载?
JavaScript 没有后台提交的概念。最简单的客户端方式是让[在此插入您的服务器端语言] 在后台提交时编写/设置一个 JavaScript 变量以检测。
在 C# 中,看起来会像这样:
ClientScript.RegisterClientScriptBlock(GetType(),
"isPostBack",
String.Format("var isPostback = {0};", IsPostBack.ToString().ToLower()),
true);
JavaScript:
if(isPostback) {
// Postback specific logic here
}
我使用了一个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";