2014-11-17 1 views
1

페이지에서 JavaScript를 실행하려고합니다. SharePoint 사이트에서 사용자 정의 페이지를로드하면 현재 사용자로 사용자 선택 도구가 채워집니다. 문제는 코드가 포스트 백에서 실행된다는 것인데, 사람들 선택기에 대한 변경 내용을 다시 설정하기를 원하지 않습니다.PostBack (SharePoint)이 아닌 페이지로드에서만 Javascript를 실행하십시오.

if(!IsPostBack)을 사용하지 않으려 고 시도했습니다. 그 시점에서 모두 오류가 발생하면

SCRIPT5009 : 'IsPostBack'이 정의되지 않았습니다.

온라인으로 도움을 드릴 수있는 정보가 없습니다. 어떤 아이디어? 감사합니다

+0

'IsPostBack'은 서버 측 코드에서 사용할 수를, 단지 명확히이다 당신은'javascript'에서 그것을 사용하고 있습니까? –

+0

예. 그러나 나는 그것을 작동시킬 수 없다. – user3320324

+0

나는 그 속성을 지원하는 서버 측 코드에서 사용 가능하다는 것을 의미한다.'javascript'에서 이것을 사용할 수 없다. 게시 된 답변을 보라. 그것이 작동하지 않는다면 나에게 알려줘. , 나는 대답을 게시하려고합니다. –

답변

0

아래에서 시도해보십시오. JavaScript pageLoad 메서드를 사용하고 PageRequestManager 개체의 isInAsyncPostBack 속성을 사용하여 다시 게시인지 확인합니다. 자세한 내용은 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> 
+0

이것으로 pageload 및 postback에서 실행 중입니다 – user3320324

+0

js 함수가 코드의 다른 곳에서 참조되지 않았습니까? –

+0

로컬로 시도해도 효과가 있습니다. 작동하지 않는 경우 맞춤 페이지 코드와 JS 코드를 게시해야 할 수도 있습니다. –

2

IsPostBack는 클라이언트가 그것에 대해 불평 있도록 서버에서만 사용할 수있는 .NET의 웹 양식의 변수, 자바 스크립트 변수가 아닙니다. 그럼 어떻게해야 하죠? 당신은 이런 기능을 만들 수 있습니다

<% if(IsPostBack) { %> <!-- runs on server --> 

<script type="text/javascript"> 
alert('will only be printed to html if not postback'); 
</script> 

<% } %> <!-- ends server if-block --> 
+0

고마워요. 내가 잘못 자바 스크립트 변수라고 생각했다. 그것이 근본적인 문제였습니다. – user3320324

3

: 나는 당신의 컨트롤의 HTML에서이 뒤범벅 제안

function IsPostBack() { 
    var ret = '<%= Page.IsPostBack%>' == 'True'; 
    return ret; 
} 
+0

예, 훌륭합니다! 나는 (초기 내용 표시 /) 페이지로드 직후에 내 UpdatePanel 내용을 표시하는 방법을 찾기 위해 오랫동안 노력해 왔습니다. 매우 간단하지만 UI가 지속적으로 반복되어 페이지로드가 발생했기 때문에 UI가 깜박입니다. 고마워요, MrCADMan! :) – Zeek

관련 문제