【发布时间】:2012-03-05 22:48:26
【问题描述】:
我的页面上有两个 Webpartzones,方式如下:
<asp:WebPartZone ID="Left" WebPartVerbRenderMode="TitleBar" runat="server" CssClass="PartZone" >
<MinimizeVerb Text="Minimize" Enabled="true" />
<RestoreVerb Text="Restore" Enabled="true" />
<CloseVerb Text="Close" Enabled="true" />
<ZoneTemplate>
<REAMS:TotoalEnergyGenerated runat="server" ID="TotEneryGen" />
<REAMS:NoOfSystemsOnline runat="server" ID="OnlineSys" />
<REAMS:WeatherInfo Title=" " ID="WeatherInfoExec" runat="server" />
<REAMS:AssetMap ID="AssetMapExec" runat="server" />
</ZoneTemplate>
</asp:WebPartZone>
<asp:WebPartZone ID="Bottom" WebPartVerbRenderMode="TitleBar" runat="server" CssClass="PartZone" >
<MinimizeVerb Text="Minimize" Enabled="true" />
<RestoreVerb Text="Restore" Enabled="true" />
<CloseVerb Text="Close" Enabled="true" />
<ZoneTemplate>
<REAMS:ProjectSummary ID="Project" runat="server" />
</ZoneTemplate>
</asp:WebPartZone>
很明显,webpartzone left 有四个小工具(控件),webpartzone bottom 有一个。所以第一次,对于任何给定的用户,左边显示四个,bottom 显示一个小工具。现在,假设用户关闭了 4 个小工具之一,现在 left 只有三个小工具。下次他来,按照他之前的修改找到页面布局。
我将这些小工具作为 UserControls。这些用户控件具有访问数据库并执行一些逻辑和获取数据的公共方法,我在 webpart 页面上调用这些公共方法(而不是在 uc 本身上)。即ucGadget1.LoadData();
这是我的问题:我只想加载那些未由用户关闭的小工具 (UC),即在加载 Web 部件页面时可见的小工具 (UC)。 我无法找到保留在页面上但不可见的 web 部件与保留在页面上且可见的 web 部件之间的区别。因为这些 webpart 的所有属性都是在设计器上编写的。我需要在运行时(并通过 ASP.NET 个性化表)呈现的那些
(请考虑 gadget = webpart)
【问题讨论】: