webparts学习中二
<asp:CatalogZone ID="CatalogZone1" runat="server">
<ZoneTemplate>
<asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1" runat="server"
Title="Wingtip Web Parts">
<WebPartsTemplate>
<uc1:WebUserControl ID="WebUserControl2" runat="server" title="用户控件" />
<asp:Calendar ID="Calendar1" runat="server" title="calender"></asp:Calendar>
</WebPartsTemplate>
</asp:DeclarativeCatalogPart>
<asp:PageCatalogPart ID="PageCatalogPart1" runat="server" Title="Local Page Catalog" />
</ZoneTemplate>
</asp:CatalogZone>
往webpartzone1中拖拉放一个日历控件,并为这个日历控件选择一个合适的样式
切换到代码视图状态,将日历控件的title属性改为:today’s date。注意的是,
日历控件本身没有title属性,但当一个控件加入到webpartzone区域中去后,
则该控件被自动包装为GenericWebPart类型控件,这些类型的控件有title属性。
要注意的是,当移动各webpart的位置后,即使关掉浏览器,下次重新打开时,依然可以看到各个控件保持原来的位置。
其实,asp.net 2.0是使用在aspnetdb.mdf中的一个叫aspnet_PersonalizationPerUser的表来保存数据的,
表的结构如下所示:
Field Value
Id 928e121a-4042-4fb4-9520-21210b9b37c1
PathId 7c3b5dc0-04d0-48a2-bbb2-2b70286f22fe
UserId 9bff14df-024f-4bda-9a0a-b4a19ab9e387
PageSettings <Binary data> LastUpdatedDate 10/06/2005 4:44:05 AM
如果想恢复各控件的原来位置,只需要将该数据表中相应的行删除掉就可以了。
但有个问题是,如果使用每一个webpart的关闭按钮,则很难再将其恢复(当然删除数据表中的行,但十分麻烦)。
在asp.net 2.0中,提供了另一种webpart,叫做catlogzone控件
ASP.NET2.0/怎样修改webpartzone里面的'无标题'啊?
上面说的这种方法是可以的,下面再介绍一种方法
WebPartManager wmp = WebPartManager.GetCurrentWebPartManager(this);
WebPart wp = wmp.WebParts[0];
wp.Title = \"test\";
WebPartZone里面都会有一个”无标题“,是不是很烦,找了半天改不掉。其实这个标题不是WebPartZon
的而是你加入到WebPartZon中的gridview控件的。
这就涉及到WebPartManager的一个重要的工作原理:如果一个标准控件被加入到
WebPartZone 控件中,系统会隐含地调用 WebPartManager.CreateWebPart 方法,这个方法会创建一个
GenericWebPart 类的实例,并且用 添加的那个控件去初始化这个实例。即,所有加入到WebPartZon中
的控件将继承WebPartManager.CreateWebPart 的属性,这下知道了吧,哈,。比如,我们刚才加入的
gridview控件,本来他是没有title属性的,但由于他现在放大WebPartZone 中继承了
WebPartManager.CreateWebPart 方法所有实际上,他也有了title属性,但.net框架还是会提示找不到
gridview的title属性,不过没事,我们的目的达到了。
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="cmbOptions" runat="server" AutoPostBack="True" OnSelectedIndexChanged="cmbOptions_SelectedIndexChanged">
<asp:ListItem Value="Browse">Browse</asp:ListItem>
<asp:ListItem Value="Design">Design</asp:ListItem>
<asp:ListItem Value="Edit">Edit</asp:ListItem>
<asp:ListItem Value="Catalog">Catalog</asp:ListItem>
<asp:ListItem Value="Connect">Connect</asp:ListItem>
</asp:DropDownList>
<br />
<asp:WebPartManager ID="WebPartManager1" runat="server">
</asp:WebPartManager>
<asp:WebPartZone ID="WebPartZone1" runat="server" HeaderText="webparts举例">
<ZoneTemplate>
<asp:Label ID="Label1" runat="server" Text="webpartzone标签一" title="webpart1"></asp:Label>
<asp:Label ID="Label2" runat="server" Text="webpartzone标签二" title="webpart2"></asp:Label>
<asp:Label ID="Label3" runat="server" Text="webpartzone标签三" title="webpart3"></asp:Label>
</ZoneTemplate>
</asp:WebPartZone>
<asp:CatalogZone ID="CatalogZone1" runat="server">
<ZoneTemplate>
<asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1" runat="server">
<WebPartsTemplate>
<asp:Label ID="Label4" runat="server" Text="webpartzone标签四" title="webpart4"></asp:Label>
<asp:FileUpload ID="FileUpload1" runat="server" title="webpart5" />
</WebPartsTemplate>
</asp:DeclarativeCatalogPart>
<asp:PageCatalogPart ID="PageCatalogPart1" runat="server" />
</ZoneTemplate>
</asp:CatalogZone>
<asp:EditorZone ID="EditorZone1" runat="server">
<ZoneTemplate>
<asp:AppearanceEditorPart ID="AppearanceEditorPart1" runat="server" />
<asp:BehaviorEditorPart ID="BehaviorEditorPart1" runat="server" />
<asp:PropertyGridEditorPart ID="PropertyGridEditorPart1" runat="server" />
<asp:LayoutEditorPart ID="LayoutEditorPart1" runat="server" />
</ZoneTemplate>
</asp:EditorZone>
</div>
</form>
浙公网安备 33010602011771号