您的位置:首页 > 其它

NET2.0系列介绍(二).NET 2.0 WebPart初探(ZZ)

2006-11-28 13:25 260 查看
ASP.NET 2.0 为我们提供了许多新的特性:MasterPage, Themes, WebPart, MemberShip, Navigation等等,本文将带领大家体验一下其中的WebPart。欢迎正在研究ASP.NET 2.0的读者共同探讨。(本文示例基于VS2005 Beta 2 完成)

正文:

打开Visual Studio 2005建立一个新的Web站点,我们会发现工具栏中多了一组新的控件--WebParts。通过他,我们能够快速地实现基于门户的应用。



费话少说,先看个例子:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:WebPartManager ID="WebPartManager1" runat="server">
</asp:WebPartManager>
<table>
<tr>
<td>
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</ZoneTemplate>
</asp:WebPartZone>
</td>
<td>
<asp:WebPartZone ID="WebPartZone2" runat="server">
<ZoneTemplate>
<asp:TextBox ID="TextBox1" runat="server"/>
</ZoneTemplate>
</asp:WebPartZone>
</td>
</tr>
</table>
</form>
</body>
</html>

我们发现这里边有两个新的控件WebPartManager和WebPartZone。事实上,WebPartManager在页面上并不会有什么特殊的显示,它用来控制页面中所有的WebPart的行为。而所有的WebPart则出现在WebPartZone里边。当然,所有的Web控件都可以出现在WebPartZone里。

这段东西运行出来大概是这个样子:



看起来好像没什么新鲜的,但是这些在WebPartZone里的普通Button和TextBox就具有了通过拖拽改变位置的能力。如图:



实现这个功能只需要加入几行代码:

protected void Button1_Click( object sender, EventArgs e)
{
WebPartManager1.DisplayMode = WebPartManager .DesignDisplayMode;
}

这样,只要点击Button我们就可以通过鼠标拖拽改变页面布局了。
当然要想让这段代码正常工作,还需要在Web.config里写一些额外的配置。

<? xml version = " 1.0 " ?>
< configuration xmlns = " http://schemas.microsoft.com/.NetConfiguration/v2.0 " >
< connectionStrings >
< add name = " AppConnectionString " connectionString = " Server=localhost;Integrated Security=True;Database=aspnetdb " />
</ connectionStrings >
< system.web >
< webParts >
< personalization defaultProvider = " AspNetSqlProvider " >
< providers >
< add connectionStringName = " AppConnectionString " applicationName = " / " name = " AspNetSqlProvider " type = " System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider " />
</ providers >
</ personalization >
</ webParts >
< authentication mode = " Windows " />
< compilation debug = " true " />
</ system.web >
</ configuration >

这段配置并不难懂,大概意思是说把 WebPart 的个人设置信息存在 aspnetdb 数据库中,采用 Windows 身份验证。那个 aspnetdb 数据库可以通过运行“ aspnet_regsql.exe ”生成,如果采用 Forms 身份验证,则在调整位置之前需要登录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: