2011-09-30 5 views
4

내부 컨트롤의 일부로 RadAjaxPanel을 만듭니다. 내부 컨트롤의 중첩 된 Radajax는 TextBox가있는 이며, radajaxpanel 업데이트 모드의 button.both는 항상 코드 숨김 상태입니다. 중첩 된 radajax parent radajax에서 버튼을 클릭하면 중첩 된 radajax가 hide 일 것입니다! 내가 updatepanel과 함께이 시나리오를 테스트하고 일을 올바른 ...중첩 된 RadAjaxPanel Telerik이 업데이트되지 않습니다.

마크 업 :

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" 
      onajaxsettingcreated="RadAjaxPanel1_AjaxSettingCreated1"> 

      <asp:TextBox runat="server" ID="txt2" /> 
      <asp:Button Text="but1" ID="but" runat="server" onclick="but_Click" /> 

     <telerik:RadAjaxPanel ID="RadAjaxPanel2" runat="server" Height="200px" 
       Width="300px" onajaxsettingcreated="RadAjaxPanel2_AjaxSettingCreated"> 
      <asp:TextBox runat="server" ID="txt" /> 
      <asp:Button Text="but2" ID="but2" runat="server" onclick="but2_Click" /> 
     </telerik:RadAjaxPanel> 

     </telerik:RadAjaxPanel>  

코드 뒤에 : 다른 RadAjaxPanel의 내부에 중첩 된 RadAjaxPanel을 할 필요가 없습니다

protected void but_Click(object sender, EventArgs e) 
     { 
      txt.Text = "ok"; 
      txt2.Text = "ok"; 
     } 

     protected void but2_Click(object sender, EventArgs e) 
     { 
      txt.Text = "ok"; 
      txt2.Text = "ok"; 
     } 

     protected void RadAjaxPanel1_AjaxSettingCreated1(object sender, Telerik.Web.UI.AjaxSettingCreatedEventArgs e) 
     { 
      e.UpdatePanel.UpdateMode = UpdatePanelUpdateMode.Always; 
     } 
     protected void RadAjaxPanel2_AjaxSettingCreated(object sender, Telerik.Web.UI.AjaxSettingCreatedEventArgs e) 
     { 
      e.UpdatePanel.UpdateMode = UpdatePanelUpdateMode.Always; 
     } 
+0

실제로 RaderjaxPanel을 중첩 할 수 있는지 여부에 대한 답변으로 Telerik [http://www.telerik.com/help/aspnet-ajax/ajax-faq.html]이 FAQ에 명시 적으로 명시되어 있습니다. Telerik Support는 페이지 논리를 수정하고 RadAjaxManager 및 일반 asp : Panel에서 동일한 동작을 얻을 수 있는지 확인하는 것이 좋습니다. "_ – Abel

답변

4

. 나는 당신의 코드에서 그것을 보증하는 것을 볼 수 없다. 그래서 가장 쉬운 해결책은 그것을 제거하는 것이다. 당신이 컨트롤은 AJAX가 구동되는보다 잘 제어하려면

, 나는 RadAjaxManager를 사용하는 대신 제안 : 두 번째 RadAjaxPanel 그냥 고정 폭을 설정처럼

<telerik:RadAjaxManager ID="AjaxManager" runat="server" UpdatePanelsRenderMode="Inline">  
    <AjaxSettings>      
     <telerik:AjaxSetting AjaxControlID="MyControl">     
      <UpdatedControls> 
       <telerik:AjaxUpdatedControl ControlID="MyOtherControl" /> 
      </UpdatedControls>   
     </telerik:AjaxSetting> 
    </AjaxSettings>  
</telerik:RadAjaxManager> 

것 같습니다. 이 경우 일반 Panel 또는 DIV 만 사용하면 모든 설정이 완료되어야합니다.

+0

이 코드는 예제에 불과합니다. 문제가 있습니까? –

+1

나는 그 기술적 인 이유가 확실하지 않다는 것을 잘 모르겠다.하지만 그것이 보증되어야 할 특별한 이유가 없다면 그것이 어떻게 사용되어 져야하는지는 알지 못한다. –

관련 문제