2013-08-02 2 views
0

gridview의 첫 번째 열에 체크 박스가있는 업데이트 패널 내부에 gridview가 있습니다. 처음 만들었을 때 제대로 작동했습니다. 이 확인란은 AutoPostBack으로 설정되어 비동기 포스트 백이 발생하여 나머지 페이지가 영향을받지 않고 데이터를 처리하고 Gridview를 새로 고칠 수 있습니다.자바 스크립트로 gridview에서 비동기 포스트 백 방지

그러나 페이지의 특정 조건을 테스트하고 클라이언트 측에 '이 사람은 설정되지 않았습니다.'라는 확인 상자를 표시해야합니다. 너 정말 계속하고 싶니?'

처음에는 Gridview의 RowDataBound 이벤트에 다음과 같은 코드를 삽입하여이 작업을 수행했습니다.

function check(ContactName) 
{ 
    if (document.getElementById('Listed') == false) 
    { 
    if (confirm('This person is not listed, are you sure you want to continue?')) 
    { 
    return true; 
    } 
    return false; 
    } 
} 

메모리에서하면 방금 입력 위의 코드에서 오타를 무시하십시오

CheckBox cb = (CheckBox)e.Row.FindControl("myCheckBox"); 
cb.Attributes.Add("onclick", "return check('" + ContactName + "');"); 

과의 라인을 따라 자바 스크립트 함수를했다. 것은, 작동합니다. 내 로컬 변수 Listed가 false이면 확인 상자가 표시됩니다.

확인 상자에서 '확인'을 선택하면 체크 박스에서 생성 된 포스트 백 (ChildrenAsTriggers = true 인 업데이트 패널 내부의 비동기이어야 함)이 취소됩니다. 자바 스크립트가 포스트 백을 발생 시키도록 확인한 후에 __doPostback을 호출해야합니다. 하지만, 그때, 나는 전체 포스트 백이 아닌 비동기 포스트 백을 얻고 있습니다.

내 질문에, 당신은 자바 스크립트 확인으로 확인란을 선택하면 비동기 포스트 백이 발생하도록 자바 스크립트 확인에서 비동기 포스트 백이 발생하지 않도록 어떻게 비동기 포스트 백이 발생하는지 확인합니다.

내가 말했듯이, 내가 작동하도록 할 수있는 유일한 방법은 사용자가 확인을 클릭 한 후 전체 포스트 백을 수행하는 것입니다.

이 위치에있는 링크가 자바 스크립트를 통해 비동기 포스트 백을 취소하는 방법에 대해 설명

답변

1

:

http://www.ajaxtutorials.com/ajax-tutorials/cancel-asynchronous-postback-in-c/

중요한 부분은 여기에 있습니다 : 수비대 닐리 제공

<script type="text/javascript"> 
var instance = Sys.WebForms.PageRequestManager.getInstance(); 
instance.add_initializeRequest(instance_initializeRequest); 

function instance_initializeRequest(sender, args) { 
    if (args.get_postBackElement().id == 'btn_Cancel') { 
     instance.abortPostBack(); 
     alert('Postback has been cancelled. Time will not be updated.'); 
    } 
} 
</script> 
1

방법은 작동해야한다 당신.

포스트 백과 비동기 포스트 백의 차이는 비동기입니다. 제출하기 전에 양식의 일부 값을 수정 한 다음 다시 설정하십시오. 값은 어느 컨트롤이 어떤 정보로 요청을 시작했는지, iframe에 응답 HTML을 렌더링해야하는지에 대한 일부 대상 정보를 나타냅니다. 나는 여기에서 내 생각을 가지고있다. 구현은 상황에 따라 다르다.

관련 문제