簡體   English   中英

主頁中的webpart控件

[英]webpart control in master page

我在網頁上使用的控件中有一個Webpart。 該網頁使用母版頁,MP中有一個內容保存器,可以容納用於對齊/設計問題的控件。 使用webpart控件,一切都可以正常運行。 當我將webpart放入容器中時,我失去了移動webpart的能力,但是一旦我將其從容器中移出,它就可以正常工作。

default.aspx

/// <summary>
        /// Set the selected item equal to the current display mode.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void Page_PreRender(object sender, EventArgs e)
        {
            MyWebPartManager wpm = (MyWebPartManager)WebPartManager.GetCurrentWebPartManager(Page);


            Control control = (Control)Master.FindControl("divReturnBack");
            if (control != null)
            {
                control.Visible = true;
                control.Controls.Add(DisplayModeMenul1);
            }
        }

displaymode.ascx

MyWebPartManager webPartManager;

        public void Page_Init(object sender, EventArgs e)
        {
            Page.InitComplete += new EventHandler(InitComplete);
        }
        public void InitComplete(object sender, System.EventArgs e)
        {
            webPartManager = (MyWebPartManager)WebPartManager.GetCurrentWebPartManager(Page);
            String browseModeName = WebPartManager.BrowseDisplayMode.Name;

            foreach (WebPartDisplayMode mode in
              webPartManager.SupportedDisplayModes)
            {
                String modeName = mode.Name;
                if (mode.IsEnabled(webPartManager))
                {
                    ListItem listItem = new ListItem(modeName, modeName);
                    ddlDisplayMode.Items.Add(listItem);
                }
            }
        }

        public void ddlDisplayMode_SelectedIndexChanged(object sender, EventArgs e)
        {
            String selectedMode = ddlDisplayMode.SelectedValue;

            WebPartDisplayMode mode = webPartManager.SupportedDisplayModes[selectedMode];
            if (mode != null)
            {
                webPartManager.DisplayMode = mode;
            }
        }

        public void Page_PreRender(object sender, EventArgs e)
        {
            ListItemCollection items = ddlDisplayMode.Items;
            int selectedIndex = items.IndexOf(items.FindByText(webPartManager.DisplayMode.Name));
            ddlDisplayMode.SelectedIndex = selectedIndex;
        }

我將此代碼移到了回發部分之外,現在可以正常工作了。

// move to container in masterpage
            Control control = (Control)Master.FindControl("divReturnBack");
            if (control != null)
            {
                control.Visible = true;
                control.Controls.Add(DisplayModeMenul1);
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM