2011-09-30 89 views
4

我創建一個RadAjaxPanel與一些內部controls.one的內部控制是一個嵌套radajax 帶有一個TextBox和一個按鈕。兩個radajaxpanel更新模式總是(在代碼後面)。 當我點擊按鈕在嵌套radajax父radajax將更新嵌套radajax將被隱藏!!爲什麼? 我測試這種情況下與的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>  

代碼背後:

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

事實上,Telerik [明確指出他們的FAQ](http://www.telerik.com/help/aspnet-ajax/ajax-faq.html)回答你是否可以嵌套RadAjaxPanel:_「No。 Telerik支持建議你修改頁面邏輯,看看你是否可以用RadAjaxManager和普通的asp:Panels來實現同樣的行爲。「_ – Abel

回答

4

你並不需要有嵌套的另一RadAjaxPanelRadAjaxPanel 。我看不出任何代碼保證它,所以最簡單的解決方案就是將其刪除。

如果你想有更多的控制權,其控制是AJAX驅動的,我會建議使用RadAjaxManager代替:

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

它看起來像第二RadAjaxPanel只是設置一個固定的寬度。只需使用常規的Panel或DIV即可完成設置。

+0

我知道,這個代碼只是一個例子。什麼是問題? –

+1

我不確定它背後的技術原因,但我知道這不是它們應該如何使用,尤其是沒有某種有效的理由來保證它。 –