繁体   English   中英

ContentPage控件(mv) - > MasterPage访问

[英]ContentPage Control (mv) --> MasterPage Access

是否可以从母版页访问位于内容页面中的控件(带有内容占位符,多视图控件更精确)?

情况是,我有一个菜单,其中包含位于母版页中的按钮。

现在在我的内容页面中,我有1个内容占位符。 其中包含具有多个视图的多视图。

如果我按下菜单(MasterPage)中的按钮,则应打开内容占位符区域中显示的正确视图(及其控件)。

我设置了ActieveViewIndex = 0,但我得到各种奇怪的行为。 我必须在某处使用ActiveViewIndex ++做一些事情,但似乎没有任何工作。

编辑::

string a = Request.Querystring["one"]
string b = Request.QueryString["two"]
if ( a == "addOne") // where addone is a redirection to the content page from the master page button
{
   mvMultieView.SetActiveView(vView1);
}
else
if ( b == "addTwo")
{
    mvMultieView.SetActiveView(vView2);
}

有什么建议? 亲切的问候。

您可以使用查找控件轻松完成此操作

View myView = (View)this.Master.FindControl("PlaceHolderFullMain").FindControl("PlaceHolderMain").FindControl("Mymultiview")

我的团队和我完成这项任务的方式(我不知道这是最好的方法,但它有效)是使用查询字符串(就像你在上一个问题中看到的那样)。 我们建立了一个名为iView的标准QS变量,它将确定所讨论视图的名称(不一定是控件名称本身,而是内容控件将响应的一些关键字)。 由于我们所有的页面/控件都有一个它们继承的页面基类,我们在基类中放置一个方法(在我们的例子中,它是在页面级别,但在你的控制级别可能有效),它负责获取请求查看。 在控件中我们将有一个机制(可能会切换)来设置activeView。 在某些情况下,我们只使用控件的实际ID(因为它是一个混淆的谜)并完全避免了切换。

http://www.mydomain.com/mypage.com?iView=mySecondView

partial class MyControl : System.Web.UI.WebControl
{
    // blah blah control stuff

    public string getRequestedView()
    {
        return (Request.QueryString["iView"]) ? Request.QueryString["iView"] : String.Empty;
    }
}

...

protected void Page_Load(object sender, EventArgs e)
{
    View myView = myMultiView.FindControl(this.getRequestedView());
    if(myView != null)
        this.MyView.SetActiveView(myView);
}

你在Master页面或内容页面中完成了这项更改吗? 因为我也遇到了同样的问题。

我的母版页中有链接按钮,我需要激活内容页面中的视图控件。 内容页面不是当前加载的页面。

这种方法对我的解决方案有帮助吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM