0
Webページ上で使用しているコントロールにwebpartがあります。 Webページにはマスターページが使用されており、MPにはアライメント/デザインの問題のコントロールを保持できるコンテンツホルダがあります。すべてがこれでうまく動作しますが、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;
}
私は好奇心が強いですが、これはどこで編集しますか? –