2012-02-07 52 views
1

我有兩個主頁,一個是「基本」主頁面,另一個是嵌套主頁面標記中從嵌套主頁訪問控制

在我的asp.net web應用程序的子文件夾中,嵌套的masterpage通過聲明 - > MasterPageFile =「〜/ Standard.Master」來引用主「Standard.Master」。

我在基本主頁面定義的佔位符內部使用子內容佔位符來託管使用嵌套主頁面顯示的頁面的特定內容。

實施例:

<asp:Content ContentPlaceHolderID="filter" runat="server"> 
    <asp:ContentPlaceHolder runat="server" ID="filter"></asp:ContentPlaceHolder> 
</asp:Content> 
<asp:Content ContentPlaceHolderID="ContentPlaceHolderMain" runat="server"> 
    <asp:ContentPlaceHolder runat="server" ID="ContentPlaceHolderMain"> 
</asp:ContentPlaceHolder> 

的的ContentPlaceHolder「過濾器」是在Standard.Master定義,幷包含下拉菜單或用於爲當前頁面中選擇參數的其他控制,這裏是一個例子:

<asp:Content ContentPlaceHolderID="filter" runat="server"> 
    <asp:CheckBox ID="weekCbx" runat="server" AutoPostBack="false" /> 

我引用這些過濾器這樣的許多objectdatasources:

<asp:ObjectDataSource ID="myDatasource" runat="server" TypeName="BusinessLogic.MyType" 
    SelectMethod="GetData" 
    <SelectParameters>   
     <asp:ControlParameter ControlID="filter$weekCbx" Name="weeks" PropertyName="Checked" /> 
</SelectParameters> 
</asp:ObjectDataSource> 

引用在Standard.master中的ContentPlaceHolder這樣- > 「過濾器$ weekCbx」沒有在嵌套頁工作。錯誤是:找不到在ControlParameter「周」控制「過濾器$ weekCbx」。使用「filter $ filter $ weekCbx」不起作用。

如何我能到裏面從嵌套頁面Standard.Master「過濾器」佔位符的控制?

如果非要將它移動到後面的代碼,我可能要使用的FindControl來訪問5-10每次過濾器。我想避免這種情況。

+0

我討厭這種情況,但它在某種程度上確實現在的工作。我不確定首先失去了什麼。但我現在可以過濾$ filter $ weekCbx。我不喜歡它的外觀,但我需要使用大量FindControls的,如果我不這樣做,這樣一來。我沒有看到嵌套母版頁的替代方案。 – 2012-02-10 13:15:24

回答

0

您可以使用Strong typed Master Pages完成此操作,您可以在HereHere中找到相關信息。

我建議你重新考慮你的設計,也許幾件事情你可以改變那裏,如果你發現自己堅持做這個。

祝你好運!