2011-09-09 47 views
1

您好,我在母版頁上有一個ToolkitScriptManager和更新面板。我想禁用內容頁面上的更新面板功能,但它應該適用於其他頁面。從內容頁面禁用更新面板

Master Page Code: 
<ajax:ToolkitScriptManager runat="server" ID="sm1" EnableScriptGlobalization="true" 
    EnableScriptLocalization="true" ScriptMode="Release" CompositeScript- 
ScriptMode="Release" /> 
<asp:UpdatePanel ID="udpEmail" runat="server"> 
<ContentTemplate> 
<asp:ContentPlaceHolder ID="cphMain" runat="server"> 
</asp:ContentPlaceHolder> 
</ContentTemplate> 
</asp:UpdatePanel> 

Content Page Code:(e.g. Page1.aspx) 
<asp:Content ID="Content3" ContentPlaceHolderID="cphMain" runat="Server"> 
Code Here 
</asp:Content> 

所以現在我想的是更新面板的功能不應該Page1.aspx的工作,但它應該在相同的主網頁的其他內容的網頁。請幫忙

+1

移動您想使用它的頁面中您更新面板,並從刪除母版頁。或者爲update1以外的page1創建第二個PlaceHolder。 – Aristos

+0

非常感謝這對我有用 – user851889

回答

0

在網頁上,它應該被禁用,嘗試這樣的事情:

UpdatePanel panel = Page.Form.FindControl("UpdatePanel1") as UpdatePanel; 
if (panel != null) 
{ 
    panel.Enabled = false; 
} 

根據其中的UpdatePanel位於母版頁,您可能需要遞歸搜索頁面,如下所示:

private void DisableControl(Control parentCtrl, string controlID) 
{ 
    foreach (Control ctrl in parentCtrl.Controls) 
    { 
     if (ctrl.ID == controlID) 
     { 
      ((WebControl)ctrl).Enabled = false; 
      continue; 
     } 
     DisableControl(ctrl, controlID); 
    } 
} 
0

您可以在內容網頁上投要麼Master屬性來糾正母版型,或者使用

<%@ MasterType %> 

可以輸入主頁面。 然後你將有權訪問它的控件,並可以禁用更新面板。

0

我還沒有找到一種方法但比下面的更好,要覆蓋的OnInit,並添加代碼

protected override void OnInit(EventArgs e) 
    { 
     //disables the ajax effect, and allows postback 
     ScriptManager.GetCurrent(Page).EnablePartialRendering = false; 


     base.OnInit(e); 
    }