2011-12-21 96 views
0

我有兩個帶有rad元素的頁面(MasterPage.aspx和ChildPage.aspx)。 在MasterPage.aspx上,我通過ajax(jQuery)調用ChildPage.aspx,並將響應(整個ChildPage.aspx頁面)放在MasterPage.aspx中。我的問題是,MasterPage.aspx元素工作,但在ChildPage上生成並放置在MasterPage中的那些(元素)不會。 將頁面加載到另一個頁面的最佳做法是哪個頁面包含需要RadScriptManager和RadAjaxManager的rad元素?帶有telerik元素的頁面頁面

母版代碼:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
    CodeBehind="Default.aspx.cs" Inherits="TelerikTest._Default" %> 

<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $.ajax({ 
       url: 'TestPage.aspx', 
       type: "POST", 
       data: "{ }", 
       success: function (data) { 
        $("#content").html(data); 
       } 
      }); 
     }); 
    </script> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> 
</telerik:RadScriptManager> 
<div> 
<telerik:RadComboBox ID="RadComboBox1" Runat="server"> 
    <Items> 
     <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem1" 
      Value="RadComboBoxItem1" /> 
     <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem2" 
      Value="RadComboBoxItem2" /> 
     <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem3" 
      Value="RadComboBoxItem3" /> 
    </Items> 
</telerik:RadComboBox> 
</div> 
<div id="content"> 

</div> 
<telerik:RadAjaxManager runat="server"> 
    <AjaxSettings> 
     <telerik:AjaxSetting AjaxControlID="RadComboBox1"> 
     </telerik:AjaxSetting> 
    </AjaxSettings> 
</telerik:RadAjaxManager> 
</asp:Content> 

ChildPage代碼:

<form id="form2" runat="server"> 
<telerik:RadScriptManager ID="RadScriptManager2" runat="server"> 
</telerik:RadScriptManager> 
<div> 

    <telerik:RadComboBox ID="RadComboBox2" Runat="server"> 
     <Items> 
      <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem1" 
       Value="RadComboBoxItem1" /> 
      <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem2" 
       Value="RadComboBoxItem2" /> 
      <telerik:RadComboBoxItem runat="server" Text="RadComboBoxItem3" 
       Value="RadComboBoxItem3" /> 
     </Items> 
    </telerik:RadComboBox> 

</div> 
<telerik:RadAjaxManager runat="server"> 
    <AjaxSettings> 
     <telerik:AjaxSetting AjaxControlID="RadComboBox2"> 
     </telerik:AjaxSetting> 
    </AjaxSettings> 
</telerik:RadAjaxManager> 
</form> 

商祺!

回答

0

ASP.NET Web窗體支持外框中的主頁 - 因此您可以將主頁面指定爲例如MasterPage.master並在asp:ContentPlaceHolder塊中填充子內容。這可以根據需要與Telerik RadScriptManager代理控件等配合使用。網上很多信息,例如http://www.asp.net/web-forms/tutorials/master-pages/creating-a-site-wide-layout-using-master-pages-cs

這可能無法解釋您的具體問題,但沒有看到該項目或爲什麼你有這樣的設置,我不能評論。

+0

我在我的問題中添加了兩頁後面的代碼。謝謝! – VladN 2011-12-22 08:12:06

+0

非常好。我確定您必須以這種方式加載內容。仍然,你有沒有條件加載用戶控件?無論如何,我想你可以從刪除子表單中的表單標籤開始。 asp.net web表單不支持多個表單標籤,並且您的母版頁中會有一組

? – 2011-12-22 10:14:36

+0

實際上,內容以這種方式加載到事件上(而不是文檔就緒),但這只是一個示例,可幫助您瞭解我正在嘗試執行的操作並減少代碼大小。如果我從ChildPage中刪除了

,我得到'UpdatePanel'類型的'Control'ctl00SU'必須放在一個帶有runat = server'的表單標籤中 – VladN 2011-12-22 10:40:24