【发布时间】:2011-03-11 23:43:10
【问题描述】:
我需要在前端检测回发,以便可以将它与 JQuery 一起使用来更改页面加载时的类。我该怎么做?
【问题讨论】:
标签: c# jquery asp.net webforms
我需要在前端检测回发,以便可以将它与 JQuery 一起使用来更改页面加载时的类。我该怎么做?
【问题讨论】:
标签: c# jquery asp.net webforms
您可以检查 IsPostBack 属性。例如:
<script type="text/javascript">
$(function()
{
var isPostBack = <%=Page.IsPostBack.ToString().ToLower()%>;
if (isPostBack)
{
alert("Postback");
}
});
</script>
【讨论】:
盗自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
}
【讨论】:
我将此变量放在我的 asp.net 网页表单页面的标题标签中。
<script type="text/javascript">
var isPostBack = ("true"==="<%= Page.IsPostBack ? "true" : "false" %>");
</script>
var 包含一个布尔值。比较可能会缩短。
【讨论】:
简单:
如果您使用的是 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,因此当它回发时它不会调用 Web 服务或仅显示更新后的 ListView 数据的状态框.
【讨论】:
$("a[href^='javascript:__doPostBack']").click(function () {
// do something
});
【讨论】: