仅在页面加载时执行Javascript,而不是PostBack(SharePoint)

时间:2014-11-17 17:14:30

标签: javascript jquery asp.net sharepoint peoplepicker

我尝试在SharePoint网站上的自定义页面上执行页面加载时执行某些JavaScript(它使用当前用户填充人员选取器)。问题是代码也会在回发上执行,这是我不想要的,因为它会重置对人员选择器的任何更改。

我尝试使用if(!IsPostBack)无济于事。在那一刻出现了一切错误,给出了

  

SCRIPT5009:' IsPostBack'未定义。

我无法在网上找到任何帮助。有任何想法吗?感谢

3 个答案:

答案 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>