2015-09-08 26 views
0

我現在使用Telerik AJAX開發ASP.NET Web表單。獲取Masterpage的Telerik RadToolBar內容頁面代碼

有一個Telerik的RadToolBar控制在母版頁:

... 
 
<td width="100%"> 
 
    <div class="toolDiv"> 
 
    <telerik:RadToolBar ID="tbToolbar" runat="server" AutoPostBack="True" OnButtonClick="Toolbar_ButtonClick" 
 
     OnClientButtonClicking="Toolbar_ClientButtonClicking" /> 
 
    </div> 
 
</td> 
 
...

出於某種原因,我想在內容頁代碼一個拿到後面使用該主此工具欄控制頁面,但我嘗試

Master.FindControl("tbToolbar")

不GI把我的工具欄控制對象,我也試過MainMasterPage.FindControl(),並沒有運氣。

有沒有一種合適的方式來實現我想在這裏做的事情?由於

編輯:

我tbToolbar位於母版頁的結構如下位置:

<asp:Content ID="content" ContentPlaceHolderID="myPlaceHolder" runat="server"> 
 
    ... 
 
    <table> 
 
     <tr> 
 
     <td> 
 
      <table> 
 
      <tr> 
 
       <td> 
 
       <div> 
 
        <telerik:RadToolBar ID="tbToolbar"> 
 
    
 
</asp:Content>

EDITED2:(解決方案)

由於由接口建議PTED答案,我添加一個類遞歸找到我的控制,我在這裏發佈的情況下,沒有人發現它是有用的:

private class ControlFinder<T> where T : Control 
 
{ 
 
    private readonly List<T> _foundControls = new List<T>(); 
 
    public IEnumerable<T> FoundControls 
 
    { 
 
    get { return _foundControls; } 
 
    } 
 

 
    public void FindChildControlsRecursive(Control control) 
 
    { 
 
    foreach (Control childControl in control.Controls) 
 
    { 
 
     if (childControl.GetType() == typeof(T)) 
 
     { 
 
     _foundControls.Add((T)childControl); 
 
     } 
 
     else 
 
     { 
 
     FindChildControlsRecursive(childControl); 
 
     } 
 
    } 
 
    } 
 
} 
 

 
protected void Page_Load(object sender, EventArgs e) 
 
{ 
 

 
    if (!IsPostBack) 
 
    { 
 
    ControlFinder<RadToolBar> controlFinder = new ControlFinder<RadToolBar>(); 
 
    controlFinder.FindChildControlsRecursive(Master); 
 
    RadToolBar toolBar = controlFinder.FoundControls.FirstOrDefault(); 
 
    // my logic // 
 
    if(toolBar != null) ... 
 
    } 
 

 
}

+1

圍繞'tbToolbar'還有其他服務器端控件,如面板或類似的嗎? – Andrei

回答

2

如果你控制「tbToolbar」裏面的ContentPlaceHolder,那麼你必須首先通過id找到ContentPlaceHolder,然後您必須從該ContentPlaceHolder中找到您的控件。看看下面的鏈接:

To reference a control on the master page

如果控制仍然無法找到那麼谷歌查找ASP.NET控件遞歸。

+0

感謝您的回覆,我編輯了在母版頁中包含層次結構,我應該如何在這樣的層次結構中獲得工具欄控件? – shole

+0

謝謝,我谷歌你說的,找到一個簡單的方法,它的作品就像一個魅力,接受:) – shole

相關問題