2011-09-09 8 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

をあなたがそれを使用したいページ内のあなたの更新パネルを移動し、からそれを削除するには、以下よりまだ良い方法を発見していませんマスターページ。または、updatepanelの外側にあるpage1の2番目のPlaceHolderを作成します。 – Aristos

+0

ありがとう、これは私のために働いています – user851889

答えて

0

ページの名前を確認し、cphMainの表示をfalseに設定するにはどうすればよいですか? http://forums.asp.net/t/1163743.aspx

あなたはまだRazor + MVCを調査しましたか?それは無効にすべきページで

+0

あなたはRazor + MVCをまだ探査しましたか?---いいえ – user851889

0

、このような何かしてみてください:UpdatePanelのはマスターページに配置されている場所に応じて

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

を、あなたはこのように、再帰的にページを検索する必要があります。

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

あなたはマスターページタイプを修正、または

<%@ MasterType %> 
を使用するために、コンテンツページのマスタープロパティをキャストしますか3210

には、型付きマスターページがあります。 その後、コントロールにアクセスし、更新パネルを無効にすることができます。

0

私はのOnInitをオーバーライドして、追加するコード

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


     base.OnInit(e); 
    } 
関連する問題