ASP.NET Portal Starter Kit Documentation

| 创建自定义门户模块 门户模块将一些代码和用户界面结合起来，为用户提供了特殊功能（例如，一个跟贴讨论）或者提供数据、图表和文本（例如，一份区域销售报告）。此外，门户模块需要了解如何与门户构架取得联系，以参与提交、编辑、缓存和基于权限的安全服务。 门户模块是以标准ASP.NET用户控件的形式实现的。用户控件能工作在门户框架下的原理被封装在一个特殊的基类中：ASPNetPortal.PortalModuleControl。. 要创建一个自定义门户模块，只需要创建一个继承于ASPNetPortal.PortalModuleControl类的用户控件。 Hello World 例如，这是一个简单的“Hello World”门户模块（HelloWorld.ascx）。
        <%@ Control Inherits="ASPNET.StarterKit.Portal.PortalModuleControl" %>

        Hello World!
| 在门户模块中使用CSS样式 门户架构中有一个称为Portal.css的样式表，它被应用到门户中所有的标签上。你可以应用Portal.css中定义的样式，使得自定义模块与固定模块的外观保持一致。最常使用的样式是"Normal"，该样式应用于模块提供的大部分文本。现在，我们用一个样式来更新HelloWorld.ascx。
        <%@ Control Inherits="ASPNET.StarterKit.Portal.PortalModuleControl" %>

        <span class="Normal">Hello World!</span>
| 为你的模块增加一个标题 当门户管理员为门户增加一个模块实例时，可以给实例添加一个描述性的标题。如果你希望自己创建的模块的标题能够与标准门户模块的标题显示得一致，则将DesktopModuleTitle用户控件添加到你的模块中去。DesktopModuleTitle用户控件知道如何从门户架构中获取模块标题，并始终如一地将其应用到门户的其它部分中去。
        <%@ Control Inherits="ASPNET.StarterKit.Portal.PortalModuleControl" %>
        <%@ Register TagPrefix="Portal" TagName="Title" Src="~/DesktopModuleTitle.ascx" %>

        <portal:title runat="server" />
        <span class="Normal">Hello World!</span>
| 添加对编辑页面的支持 如果你的模块有编辑页面，你也可以使用DesktopModuleTitle使编辑项链接到下一个模块标题中。EditText 属性是显示出的链接文本，EditUrl属性是编辑页面的路径，与门户根目录相关。
        <%@ Control Inherits="ASPNET.StarterKit.Portal.PortalModuleControl" %>
        <%@ Register TagPrefix="Portal" TagName="Title" Src="~/DesktopModuleTitle.ascx" %>

        <portal:title EditText="Edit" EditUrl="PortalModules/HelloWorld/EditHello.aspx" runat="server" />
        <span class="Normal">Hello World!</span>
| 创建一个使用数据的模块 许多门户模块显示从数据库或XML文件获取的数据作为其输出的一部分。为了显示数据，需要像普通的ASP.NET用户控件那样加载和绑定数据。下面是一个使用Northwind SQL数据库的典型例子。
        <%@ Control Inherits="ASPNET.StarterKit.Portal.PortalModuleControl" %>
        <%@ Register TagPrefix="Portal" TagName="Title" Src="~/DesktopModuleTitle.ascx" %>
        <%@ Import Namespace="System.Data" %>
        <%@ Import Namespace="System.Data.SqlClient" %>

        <script language="C#" runat="server">

            void Page_Load(Object sender, EventArgs e) {

                SqlConnection connection = new SqlConnection("server=localhost;uid=sa;pwd=;database=northwind");
                SqlCommand command = new SqlCommand("SELECT TOP 10 ProductName, UnitPrice FROM Products ORDER BY UnitPrice DESC", connection);

                connection.Open();

                grid1.DataSource = command.ExecuteReader(CommandBehavior.CloseConnection);
                grid1.DataBind();
            }

        </script>

        <portal:title runat="server" />

        <asp:DataGrid id=grid1 Cssclass="Normal" ShowHeader="false" BorderWidth="0" runat="server"/>
| 在管理工具中添加一个自定义模块 为了向门户中添加一个模块，只需访问门户管理工具。它具有图形用户界面（GUI），可以将你的模块动态加载到门户系统中。