2014-06-09 3 views
1

꽤 느린 페이지에 UpdatePanel이 있습니다. UpdatePanel은 조건부로 업데이트되도록 설정됩니다. 내가 직면 한 문제는 UpdatePanel이 렌더링 된 클라이언트 사이드에서 즉시 부분 포스트 백을 수행한다는 것입니다. 내 질문 :UpdatePanel 부분 포스트 백 방지하기

  1. 첫 번째 부분적인 다시 게시가 발생하지 않도록 할 수 있습니까?
  2. 심지어 좋은 연습입니까? 그 이유는 무엇?

도움 주셔서 감사합니다.

마크 업 : 직접 UpdatePanel 접촉에는 코드가 없습니다

 <asp:UpdatePanel UpdateMode="Conditional" ChildrenAsTriggers="false" runat="server" ID="updatePnlValidationErrors"> 
      <ContentTemplate> 
       <span runat="server" id="validationErrors" class="error"></span> 
      </ContentTemplate> 
      <Triggers> 
       <asp:AsyncPostBackTrigger EventName="Click" ControlID="btnCompletePurchase" /> 
       <asp:AsyncPostBackTrigger EventName="Checkout_Click" ControlID="checkoutBox" /> 
      </Triggers> 
     </asp:UpdatePanel> 

.

+0

페이지로드 이벤트에서 업데이트 패널을 업데이트합니까? –

+0

@DTs 아니요, 서버 쪽이 아닙니다. 두 개의 트리거가 바인딩되어 있고 둘 다 버튼의 클릭 이벤트에 있습니다. – khalid13

+0

업데이트 패널에서 페이지로드시 다시 게시되는지 확인하는 방법은 무엇입니까? –

답변

1

OK, 코드의 asyncpostbacktrigger가 올바른 컨트롤을 가리키고 있지 않습니다. 데모 목적으로 만 코드를 제거했을 수도 있지만 테스트에 중요합니다. 여기에 코드와 그 결과에 대한 나의 완벽한 시뮬레이션이 있습니다.

이 (가) 두 개의 추가 된 AsyncPostBackTriggers 관련 컨트롤을 업데이트 패널 외부에 추가했습니다.

<asp:Button ID="btnCompletePurchase" runat="server" Text="Button" 
      OnClick="btnCompletePurchase_Click" /> 
<asp:CheckBox ID="checkoutBox" runat="server" 
       OnCheckedChanged="checkoutBox_CheckedChanged" /> 
와 코드가 아래 코드처럼 보일 것입니다 :

enter image description here : 여기

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 

<asp:Button ID="btnCompletePurchase" runat="server" Text="Button" 
      OnClick="btnCompletePurchase_Click" /> 
<asp:CheckBox ID="checkoutBox" runat="server" 
       OnCheckedChanged="checkoutBox_CheckedChanged" /> 
<asp:UpdatePanel UpdateMode="Conditional" ChildrenAsTriggers="false" 
        runat="server" ID="updatePnlValidationErrors"> 
    <ContentTemplate> 
     <span runat="server" id="validationErrors" class="error"></span> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger EventName="Click" 
             ControlID="btnCompletePurchase" /> 
     <asp:AsyncPostBackTrigger EventName="CheckedChanged" 
             ControlID="checkoutBox" /> 
    </Triggers> 
</asp:UpdatePanel> 

와는 처음으로 Page_Load 이벤트에 브레이크 포인트의 결과입니다

이 코드를 복사하여 붙여 넣으면 결과를 마지막으로 확인할 수 있습니다.

+0

요점은 그의 aspx에서 그는 업데이트를 트리거하는 컨트롤에 포함하는 것을 잊었다 고합니다? 그가 페이지를 열려고 할 때 예외가 생기기 때문에 불가능합니다. –