ASP.Net UpdatePanel ImageButton으로 인해 "this._postbackSettings.async가 null이거나 개체가 아닙니다."

StackOverflow https://stackoverflow.com/questions/57586

문제

dragPanelExtender 내에 있는 popupControlExtender 내의 업데이트 패널에서 이 오류가 발생합니다.

나는 다른 많은 사람들이 이 문제를 겪고 있고 나에게 도움이 되지 않은 다양한 수정 사항을 가지고 있음을 확인했습니다.

이런 일이 발생하는 이유에 대한 논리적인 설명과 향후 이러한 문제를 방지할 수 있는 확실한 방법을 듣고 싶습니다.

나는 다른 사람들과 마찬가지로 트리거가 ImageButton이 아닌 LinkButton일 때 이 오류가 발생하지 않는다는 것을 발견했습니다. 여전히 누군가 설명이 있는지 궁금합니다.

도움이 되었습니까?

해결책

내 추측으로는 UpdatePanel이 포스트백 요청에 대한 사용자 정의 "비동기" 속성을 제대로 작성할 수 없다는 것입니다.이는 이를 래핑하는 컨트롤 중 하나의 차단으로 인한 것일 수 있습니다(내 직감으로는 이것이 popupControlExtender인 것 같습니다. 이는 표시/숨기기 목적으로 내부 이벤트를 관리하기 위한 것이므로 업데이트 패널에서 이상한 동작을 하는 경향이 있습니다).

업데이트 패널을 제거하고 특정 비즈니스 요구 사항에 맞게 자체 솔루션을 롤링하거나 자체 팝업 스크립트를 구현하는 것이 좋습니다(작성하기가 약간 더 쉬울 수 있음).

덧붙여서, 일부 배경에서 "this._postbackSettings.async"는 이것이 비동기 호출인지 여부를 파악하려는 AJAX.NET 프레임워크입니다.포스트백이 전송되기 전에 프로그래밍 방식으로 이를 설정하여 이 문제를 극복할 수 있습니다(포스트백 이벤트를 포착하고 해당 필드가 아직 포스트백 요청에 없으면 해당 필드를 추가하세요).

그냥 몇 가지 생각입니다...나는 이것에 대한 "플러그 앤 플레이" 대답이 있다고 믿지 않습니다!

다른 팁

나는 같은 문제를 겪었고 결국 끝날 때까지 만족스러운 해결책을 찾지 못했습니다. http://siderite.blogspot.com/2009/02/thispostbacksettingsasync-is-null-or.html 내가 원하는 것을 정확히 수행합니다.

향후에 발생할 수 있는 데드 링크 문제를 피하기 위해 다음 코드를 사용하십시오.

var script = @"
if (Sys &&
    Sys.WebForms && Sys.WebForms.PageRequestManager &&
    Sys.WebForms.PageRequestManager.getInstance) 
{
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    if (prm &&
       !prm._postBackSettings)
    {
        prm._postBackSettings = prm._createPostBackSettings(false, null, null);
    }";

ScriptManager.RegisterOnSubmitStatement(
    Page, 
    Page.GetType(), 
    "FixPopupFormSubmit", 
    script);

_postBackSettings를 설정하지 않고 제출하는 경우 이를 생성하여 _postBackSettings.async를 사용할 수 있으므로 null 참조 예외가 사라집니다.

도움이 되었기를 바랍니다,

G.

ScriptManager 컨트롤에서 "EnablePartialRendering"을 false로 설정하면 오류를 방지할 수 있지만 최적의 솔루션은 아닙니다.응용 프로그램에 따라 부분 렌더링의 이점을 잃는 것은 큰 문제가 될 수 있습니다.

참고로 저는 오류를 본 다른 사람들과 똑같은 작업을 수행하지 않았습니다.확인란 목록이 있는 PopupControlExtender가 있습니다.프로그래밍 방식으로 모두 선택/선택 취소하기 위해 자바스크립트 메서드를 사용하여 "모두 선택" 링크를 추가했습니다.이미지버튼을 사용하지 않습니다.자바스크립트를 추가하기 전에는 오류가 표시되지 않았으며 이제는 제거한 후에도 오류가 남아 있습니다.내가 놓친 또 다른 변화가 있어야합니다.

이것이 누군가에게 도움이되기를 바랍니다 ...

--매트

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top