code

Javascript를 사용한 부분적인 포스트백

starcafe 2023. 8. 21. 21:28
반응형

Javascript를 사용한 부분적인 포스트백

저는 SO에서 비슷한 것을 찾을 수 없었습니다.

ASP.NET에서 UpdatePanel에서 Javascript로 부분적인 포스트백을 발생시킬 수 있는 방법이 있습니까?
나는 노력했다.__doPostBack()하지만 그것은 완전한 포스트백을 합니다.
나는 더미 버튼과 불로 그것을 속일 수 있습니다.click()그런 다음 부분적인 포스트백을 그런 식으로 처리하지만, 저는 속임수보다 더 우아한 방법을 원합니다.

감사해요.

편집: 이 disturbedbuddha.wordpress.com/2007/11/26/ 을 찾았는데 작동이 안 돼요 =(
저는 이 방법이 효과가 있었으면 좋겠습니다. 저에게 딱 맞습니다!지금까지 이 마지막 방법을 사용하여 할 수 있는 것은 타이머에 대한 참조를 얻는 것입니다.타이머가 처음에 비활성화된 상태에서 타이머를 시작하면 포스트백이 발생하지 않는 것 같습니다.그러나 Ajax가 없으면 단순히 타이머를 초기에 활성화하면 간격을 두고 게시됩니다. Ajax 호출이 원인이 될 수 없는 이유는 무엇입니까?

이 작업을 수행하려면 업데이트 패널과 함께 AsyncPostBackTrigger를 사용할 수 있습니다.이벤트를 발생시킬 수 있는 무언가가 필요하기 때문에 버튼을 사용하는 것은 매우 간단하고 숨김이 잘 작동합니다.

마크업인 경우:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="UpdatePanel1_Load">
    <ContentTemplate>
        <!-- Contents... -->
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="ReloadThePanel" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>
<asp:Button ID="ReloadThePanel" runat="server" style="display:none;" />

패널을 업데이트하려면 다음 전화를 걸기만 하면 됩니다.

__doPostBack('<%=ReloadThePanel.ClientID %>', null);

이것은 ASP가 될 것입니다.NET은 Reload The Panel이 클릭되고 트리거로 인해 자동 생성된 JavaScript가 나머지를 처리한다고 생각합니다.

편집

트리거나 숨겨진 버튼 없이 UpdatePanel의 순수 JavaScript 업데이트를 수행할 수 있습니다.당신은 단지 호출하기만 하면 됩니다.__doPostBack클라이언트 측 ID를 첫 번째 인수로 지정합니다.

__doPostBack('<%=UpdatePanel1.ClientID %>', null);

저는 @MatthewJacobs의 대답을 사용했지만, 저는 전화가 온 것을 발견했습니다.__doPostBackIE11에서 런타임 예외를 발생시켰습니다.전화가 온 것을 발견했습니다.__doPostBack테스트한 두 브라우저(IE11 및 Chrome 52)에서 모두 작동하는 다음 JavaScript 호출로 대체할 수 있습니다.

Sys.WebForms.PageRequestManager.getInstance().beginAsyncPostBack(
    [ '<%=UpdatePanel1.ClientID %>' ], '<%=UpdatePanel1.ClientID %>', null
);

시스템 참조.웹 양식.페이지 요청 관리자입니다.자세한 내용을 보려면 AsyncPostBack Method를 시작하십시오.

나에게 효과적인 솔루션

ASPX

<script>
  function myfunc(){
    __doPostBack('<%=UpdatePanel2.ClientID%>', "");
  }
</script>

<asp:UpdatePanel ID="UpdatePanel2" runat="server" OnLoad="UpdatePanel1_Load">       
</asp:UpdatePanel>

.cs

protected void UpdatePanel1_Load(object sender, EventArgs e)
{
   if (IsPostBack)
   {
      //your code
   }        
}

언급URL : https://stackoverflow.com/questions/3965367/partial-postback-with-javascript

반응형