序:
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 身份验证,则在调整位置之前需要登录。
(未完,待续)
|