- ProxyWebPartManager Web Server Control
in ASP.NET environment,This article describes you how to work with ProxyWebPartManager
Web Control.The ProxyWebPartManager control can create static connections in a content
page when a WebPartManager control has been declared in the content page's associated
master page.
Moreover, The WebPartManager control is used by a page that manages all Web Parts
controls on the page. When a Web Parts application uses master pages, it is common
to place the WebPartManager control in the master page. When content pages are merged
with the master page at run time, the single WebPartManager control can manage Web
Parts controls on all the content pages.
<staticconnections> element can declare a static connection and that required
the child element <asp:webpartconnection>. when you use master pages and put
the WebPartManager control in the master page, you cannot create a <asp:webpartmanager>
element in a content page; only one WebPartManager control is permitted. The solution
is to use a ProxyWebPartManager control on the content page, which takes the place
of the WebPartManager control.
The ProxyWebPartManager's connections are added to the StaticConnections collection
of the WebPartManager control in the Runtime and treated like any other connection.
ProxyWebPartManager Vs WebManagerControl
- The ProxyWebPartManager control is used only when you have created a WebPartManager
control in a master page and you want to declare static connections in the content
page.
- The ProxyWebPartManager control therefore has more limited functionality than the
WebPartManager control.
- Although the ProxyWebPartManager control acts as a proxy to contain static connections
for the WebPartManager control in content pages, it does not inherit from the WebPartManager
control.
The following code snippets explains you the ProxyWebPartManager to declare static
connections on content pages in an application that uses master pages
in .aspx.cs page,
-
WebPartManager _manager;
void Page_Init(object sender, EventArgs e)
{
Page.InitComplete += new EventHandler(InitComplete);
}
void InitComplete(object sender, System.EventArgs e)
{
_manager = WebPartManager.GetCurrentWebPartManager(Page);
String browseModeName = WebPartManager.BrowseDisplayMode.Name;
foreach (WebPartDisplayMode mode in _manager.SupportedDisplayModes)
{
String modeName = mode.Name;
if (mode.IsEnabled(_manager))
{
ListItem item = new ListItem(modeName, modeName);
DisplayModeDropdown.Items.Add(item);
}
}
if (_manager.Personalization.CanEnterSharedScope)
{
Panel2.Visible = true;
if (_manager.Personalization.Scope == PersonalizationScope.User)
RadioButton1.Checked = true;
else
RadioButton2.Checked = true;
}
}
void DisplayModeDropdown_SelectedIndexChanged(object sender, EventArgs e)
{
String selectedMode = DisplayModeDropdown.SelectedValue;
WebPartDisplayMode mode = _manager.SupportedDisplayModes[selectedMode];
if (mode != null)
_manager.DisplayMode = mode;
}
void Page_PreRender(object sender, EventArgs e)
{
ListItemCollection items = DisplayModeDropdown.Items;
int selectedIndex =
items.IndexOf(items.FindByText(_manager.DisplayMode.Name));
DisplayModeDropdown.SelectedIndex = selectedIndex;
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
_manager.Personalization.ResetPersonalizationState();
}
protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
{
if (_manager.Personalization.Scope == PersonalizationScope.Shared)
_manager.Personalization.ToggleScope();
}
protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
{
if (_manager.Personalization.CanEnterSharedScope &&
_manager.Personalization.Scope == PersonalizationScope.User)
_manager.Personalization.ToggleScope();
}
-
in .aspx page,
-
<div>
<asp:Panel ID="Panel1" runat="server"
Borderwidth="1"
Width="230"
BackColor="lightgray"
Font-Names="Verdana, Arial, Sans Serif" >
<asp:Label ID="Label1" runat="server"
Text=" Display Mode"
Font-Bold="true"
Font-Size="8"
Width="120" />
<asp:DropDownList ID="DisplayModeDropdown" runat="server"
AutoPostBack="true"
Width="120"
OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
<asp:LinkButton ID="LinkButton1" runat="server"
Text="Reset User State"
ToolTip="Reset the current user's personalization data for the page."
Font-Size="8"
OnClick="LinkButton1_Click" />
<asp:Panel ID="Panel2" runat="server"
GroupingText="Personalization Scope"
Font-Bold="true"
Font-Size="8"
Visible="false" >
<asp:RadioButton ID="RadioButton1" runat="server"
Text="User"
AutoPostBack="true"
GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
<asp:RadioButton ID="RadioButton2" runat="server"
Text="Shared"
AutoPostBack="true"
GroupName="Scope"
OnCheckedChanged="RadioButton2_CheckedChanged" />
</asp:Panel>
</asp:Panel>
</div>
-
- Related Links
-
ef07e06e-922d-4dbb-b9f5-57d160209110|0|.0