문제

이상한 문제가 있습니다.

나는 사용해야한다 GetPostBackEventRefence 강제로 포스트백을 시도했지만 처음에는 작동하고 첫 번째 포스트백 이후에는 .NET 함수가 렌더링되지 않습니다.어떤 아이디어가 있나요?

포스트백 후에 누락된 내용은 다음과 같습니다.

<script language="javascript" type="text/javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
    var theform;
    if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
        theform = document.Main;
    }
    else {
        theform = document.forms["Main"];
    }
    theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
    theform.__EVENTARGUMENT.value = eventArgument;
    theform.submit();
}
// -->
</script>
도움이 되었습니까?

해결책

가장 먼저 살펴볼 것은 페이지에 표시되는 ASP 컨트롤(예: 일반적으로 제출을 생성하지 않지만 포스트백이 필요한 링크 버튼, 콤보 상자)이 있는지 여부입니다.__doPostback 함수는 ASP가 컨트롤 중 하나에 필요하다고 판단하는 경우에만 페이지에 배치됩니다.

다음 중 하나를 사용하지 않는 경우 다음을 사용할 수 있습니다.

Page.ClientScript.GetPostBackClientHyperlink(controlName, "")

페이지에 기능을 추가하려면

다른 팁

글쎄, 그 아이디어에 따라 포스트백참조를 사용하여 더미 함수를 만들었고 작동했습니다...그래도 처음에는 올바르게 렌더링되기 때문에 여전히 이상합니다.

this.Page.RegisterClientScriptBlock("DUMMY", "<script language='javascript'>function dummy() { " + this.Page.GetPostBackEventReference(this) + "; } </script>");
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top