我尝试在SharePoint网站上的自定义页面上执行页面加载时执行某些JavaScript(它使用当前用户填充人员选取器)。问题是代码也会在回发上执行,这是我不想要的,因为它会重置对人员选择器的任何更改。
我尝试使用if(!IsPostBack)
无济于事。在那一刻出现了一切错误,给出了
SCRIPT5009:' IsPostBack'未定义。
我无法在网上找到任何帮助。有任何想法吗?感谢
答案 0 :(得分:4)
您可以创建如下函数:
function IsPostBack() {
var ret = '<%= Page.IsPostBack%>' == 'True';
return ret;
}
答案 1 :(得分:3)
IsPostBack
不是javascript变量,它是一个.NET webforms变量,仅在服务器上可用,因此客户端会抱怨它。那么该怎么做呢?我建议在你的控件的html中使用这个混搭:
<% if(IsPostBack) { %> <!-- runs on server -->
<script type="text/javascript">
alert('will only be printed to html if not postback');
</script>
<% } %> <!-- ends server if-block -->
答案 2 :(得分:0)
您可能想尝试下面的内容。使用JavaScript pageLoad
方法并使用isInAsyncPostBack
对象的PageRequestManager
属性来确定它是否为回发。有关详细信息,请参阅MSDN链接here。
<script type="text/javascript" language="javascript">
function pageLoad(sender, args) {
if (!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) {
// call you JavaScript function in here
}
}
</script>