当前位置:  开发笔记 > 编程语言 > 正文

如何确定从母版页显示哪个子页面?

如何解决《如何确定从母版页显示哪个子页面?》经验,为你挑选了5个好方法。

我正在母版页上编写代码,我需要知道正在显示哪个子(内容)页面.我该如何以编程方式执行此操作?



1> Todd H...:

我用这个:

string pageName = this.ContentPlaceHolder1.Page.GetType().FullName;

它以这种格式"ASP.default_aspx"返回类名,但我发现很容易为大多数目的解析.

希望有所帮助!


您可以使用`string pageName = this.ContentPlaceHolder1.Page.GetType().BaseType.Name;`这将返回子页面的基类类型.在大多数情况下,它为Page Adress提供了没有"aspx"标签.例如"默认".

2> norbertB..:

最好让ContentPage通知MasterPage.这就是ContentPage拥有Master房产而MasterPage没有房产的原因Child.最好的方法是在上面定义一个属性或方法,MasterPage并通过它的Master属性使用它ContentPage.

如果使用此技术,最好明确指定MasterPage的类名.这使得在ContentPage中使用MasterPage.

例:

//Page_Load
MyMaster m = (MyMaster)this.Master;

m.TellMasterWhoIAm(this);

希望这可以帮助.



3> Gord..:

这听起来像个坏主意.主人的想法是它不应该关心哪个页面,因为这是每个页面的所有常用代码.


这是一个很好的一般规则,但是像面包屑这样的东西怎么样?您希望在每个页面上使用它,但您需要知道加载了哪个特定页面以确定碎屑.为此,我通常在母版页上公开一个公共函数来设置最终的crumb,这是由页面调用的.其他面包屑由站点地图决定.
确切地说+1.这与主页的内容大相径庭.

4> WraithNath..:

我有理由检查母版页中的子页面.

我的主页上有所有菜单选项,如果未设置某些系统设置,则需要禁用它们.

如果不是,则显示消息并禁用按钮.由于设置页面是来自此母版页的内容页面,因此我不希望该消息继续显示在所有设置页面上.

这段代码对我有用:

                //Only show the message if on the dashboard (first page after login)
                if (this.ContentPlaceHolder1.Page is Dashboard)
                {
                    //Show modal message box
                    mmb.Show("Warning Message");
                }



5> Sarim Shekha..:

使用下面的代码.

Page.ToString().Replace("ASP.","").Replace("_",".")

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有