2009-06-04 66 views
1

昨天我问了一个相关问题,并被告知不该做什么,但不知道该怎么做。Masterpage - > SubMasterPage - > Web Form ...在子页面中获取Masterpage的属性

我有一个母版页,我会打电话给“TheMaster”。我有2个子主页“Sub1”和“Sub2”。他们都有一个“TheMaster”的母版页指令。 Web窗体具有“Sub1”或“Sub2”的母版页指令。这些不是真名。

在“TheMaster”中,我找出用户在哪个页面上,找出它们在Web.sitemap中的位置,并使用它,我有Web.sitemap节点以及父代和父代的父项,if他们都存在。我使用它来动态构建导航并突出显示当前页面。

现在,我们的设计师有几个地方出现这个导航。顶部的导航,辅助导航,左侧的teritiary导航和“面包屑”风格显示首页 - > parentparentnode - > parentnode - >当前页

由于布局限制,我无法在“TheMaster”中定义所有这些。

因此,在“大师”,我觉得他们的当前节点,并保存为“大师”的公共属性(连同信息的其他几件。

在Sub1的,即使它使用“大师”,因为它的母版,它似乎并不能够从找到我的公共属性‘大师’。

我如何能得到这个信息是可通过这所房子的卡一路任何想法?

我试过

Page.Master.myProp (nope) 
Parent.myProp (nope) 

我想不出还有什么可以让这个工作。 “TheMaster”基本上没有“Sub1”的知识,所以我不能在Sub1上设置属性并将它放在树上,树下的节点显然没有注意到他们的父母......

回答

3

将Parent或Page.Master转换为您的实际MasterPage类。

((MyMaster)Page.Master).myProp // found! 
+0

铸造是可以的,但是副主管确实应该表达任何想要作为副主人属性公开的主人属性。 – 2009-06-04 20:13:47

0

铸造让你在那里,但从长远来看,它不是那么干净,也不能维护。我使用一系列的接口来抽象事物,做了非常非常复杂的版本。请参阅this blog post以获得带有一层的简化版本。添加更多图层的技巧只是根据需要添加更多接口和抽象类。

相关问题