2014-12-26 15 views
1

이 문제점을 검색했으나이 문제점에 대한 질문이 도움이되지 않습니다. 우선 Ajax 지역으로 들어가서 익숙하지 않습니다. 기본적으로 연락처 양식 인 매우 간단한 WebUserControl을 만들었습니다. 사용자 컨트롤의 HTML이며, 부분적인 다시 게시 후 정적 내용의 UpdatePanel이 사라짐

당신이 컨트롤은 매우 간단 볼 수 있듯이

<telerik:RadAjaxManagerProxy ID="AjaxManagerProxy1" runat="server"> 
<AjaxSettings> 
    <telerik:AjaxSetting AjaxControlID="btnSubmitContactForm"> 
     <UpdatedControls> 
      <telerik:AjaxUpdatedControl ControlID="upContactForm" LoadingPanelID="RALP_ContactForm" /> 
     </UpdatedControls> 
    </telerik:AjaxSetting> 
</AjaxSettings> 
</telerik:RadAjaxManagerProxy> 


<telerik:RadAjaxLoadingPanel ID="RALP_ContactForm" runat="server" Transparency="5"> 
       <img src="images/cf_animation.GIF" alt="Processing Request..." /> 
</telerik:RadAjaxLoadingPanel> 

<asp:UpdatePanel ID="upContactForm" runat="server"> 
<ContentTemplate> 
    <div id="form-main"> 
     <div id="form-div"> 
      <p class="name"> 
       <asp:TextBox ID="txtContactName" runat="server"></asp:TextBox> 
      </p> 
      <p> 
       <asp:TextBox ID="txtContactEmail" runat="server"></asp:TextBox> 
      </p> 
      <p> 
       <asp:TextBox ID="txtContactComment" TextMoe="MultiLine" runat="server"></asp:TextBox> 
      </p> 
      <p><asp:Label ID="lblMessage" runat="server" Visible="false"></asp:Label></p> 
      <div> 
       <asp:Button ID="btnSubmitContactForm" runat="server" 
        Text="SEND" OnClick="btnSubmitContactForm_Click" /> 
      </div> 
     </div> 
    </div> 

. 내 메인 페이지의 컨트롤을 호출합니다.

<uc1:FooterContactForm ID="FooterContactForm" runat="server"></uc1:FooterContactForm> 

이제 렌더링 될 때 아주 잘 작동합니다. 보내기 단추를 클릭하면 이미지로드가 표시되고 서버 쪽 양식 내용이 전자 메일을 통해 나에게 전송됩니다.

이 프로세스가 완료되면 갑자기 바닥 글이 사라집니다. 이것은 사용자 컨트롤의 경우 일뿐만 아니라 사용자 컨트롤없이 구현했을 때 UpdatePanel의 내용이 사라집니다. 전자 메일이 서버 쪽에서 전송 된 후 다음 코드 줄을 넣으면 내용이 표시되고 사라지지 않습니다.

upContactForm.Update(); 

이 전체 문의 양식이 사라집니다. 하지만 TextBoxes를 재설정하려고하면 Update 패널을 업데이트 할 때 UpdateMode를 조건부로 설정해야한다는 오류가 발생합니다. UpdateMode를 조건부로 설정하면 오류는 사라지지만 다시 게시하면 연락처 양식이 다시 사라집니다.

여기에서 무슨 일이 일어나는지 전혀 알지 못하기 때문에 전문가가 친절하게 도와줍니다.

+0

나는 UpdatePanel 때문에 상위 페이지에 AjaxManager 사라지는 것을 발견 : 여기

잘 작동해야 설정입니다. 상위 페이지에서 AjaxManager를 제거하면 컨트롤이 사라지지 않고 RadAjaxLoadingPanel을 통해로드되는 이미지가 표시되지 않습니다. AjaxManager가 이것을하는 이유는 무엇입니까? –

답변

1

중첩 업데이트 패널이 예측할 수 없으므로 RadPlex를 사용하여 RadiaJaxManager/RadAjaxManagerProxy/RadAjaxPanel의 AJAX 설정을 UpdatePanel로 중첩하면 안됩니다.

 <telerik:RadAjaxManagerProxy ID="AjaxManagerProxy1" runat="server"> 
      <AjaxSettings> 
       <telerik:AjaxSetting AjaxControlID="btnSubmitContactForm"> 
        <UpdatedControls> 
         <telerik:AjaxUpdatedControl ControlID="Panel1" LoadingPanelID="RALP_ContactForm" /> 
        </UpdatedControls> 
       </telerik:AjaxSetting> 
      </AjaxSettings> 
     </telerik:RadAjaxManagerProxy> 

     <telerik:RadAjaxLoadingPanel ID="RALP_ContactForm" runat="server" Transparency="5"> 
      <img src="images/cf_animation.GIF" alt="Processing Request..." /> 
     </telerik:RadAjaxLoadingPanel> 

     <asp:Panel ID="Panel1" runat="server"> 
      <div id="form-main"> 
       <div id="form-div"> 
        <p class="name"> 
         <asp:TextBox ID="txtContactName" runat="server"></asp:TextBox> 
        </p> 
        <p> 
         <asp:TextBox ID="txtContactEmail" runat="server"></asp:TextBox> 
        </p> 
        <p> 
         <asp:TextBox ID="txtContactComment" TextMoe="MultiLine" runat="server"></asp:TextBox> 
        </p> 
        <p> 
         <asp:Label ID="lblMessage" runat="server" Visible="false"></asp:Label> 
        </p> 
        <div> 
         <asp:Button ID="btnSubmitContactForm" runat="server" 
            Text="SEND" OnClick="btnSubmitContactForm_Click" /> 
        </div> 
       </div> 
      </div> 
     </asp:Panel> 
+0

도움 주셔서 감사합니다. –