WebPart

WebPartManage:可以做成一个用户控件,里面包括一个DropDownList和一个WebPartManage。用下拉框改变WebPartManage的显示模式。switch (dpType.SelectedValue),设置WebPartManager1.DisplayMode = WebPartManager.EditDisplayMode;(还有DesignDisplayMode, CatalogDisplayMode, BrowseDisplayMode)。注:switch中的default为可选(C#编程规范中表示最好加上,做为异常处理)。default也必须加break。

 

WebPartZone中的“无标题”修改:比如在WebPartZone中加入一个gridview控件,然后在源码中为gridview加入title属性即可(此时.net会提示找不到gridview的title属性)

CatalogZone:
拖曳出来的CatalogZone中需要加入PageCatalogPart(显示页面上已经删除的WebPart的列表)。ImportCatalogPart允许从Webpart文件中导入WebPart。

EditorZone:拖曳出来的EditorZone中需要加入AppearanceEditorPart。选择模式为EditDisplayMode后在WebPartZone的右上角菜单中会出现“编辑”。EditorZone可以加入对应的EditorPart。

ConnectionZone:允许用户建立WebPartZone间的通讯(面向最终用户而不是开发人员)。
参考文章http://hi.baidu.com/meiixaohu8/blog/item/269681c85b620c1f7e3e6f2e.html


WebPart之间的通讯:
A。WebPartManager调用[ConnectionProvider]方法。
B。WebPartManager从返回参数中获得接口。
C。WebPartManager调用[ConnectionConsumer]方法,将接口传递给订阅者。
D。订阅者使用给定的接口与发布者通讯。

A。定义ISendParam.cs

using System;

/// <summary>
/// Summary description for ISendParam
/// </summary>

public interface ISendParam
{
    
string GetParam();
}

B。新建两个用户控件,UserCtl1是接连提供者(ConnectionProvider),UserCtl2是连接用户(ConnectionConsumer)。
UserCtl1(继承ISendparam接口):

Code
Code

UserCtl2:

Code

C。在测试页中加入两个WebPartZone,分别装入这两个控件。把WebPartManage1的DisplayMode设为ConnectDisplayMode,测试连接。

添加自定义的WebPart:

 A。使用自定义控件:新建一个自定义控件,在原基础上再继承IWebPart接口,实现以下接口成员:
 CatalogIconImageUrl:当WebPart关闭后出现在CatalogZone时的图片。
 Description:鼠标悬停Title时的ToolTip。
 Subtitle:WebPart小标题。
 Title:WebPart正标题。
 TitleIconImageUrl:WebPart题标的图标。
 TitleUrl:点击Title时的跳转路径,如http://www.baidu.com或default2.aspx。
其它操作和一般用户控件一样,完成后拖入WebPartZone中。
 B。使用类文件:
新建一个类,让它继承WebPart:

Code

aspx页:
<%@ Register TagPrefix="cc1" Namespace="WebPartNameSpace" %>
<cc1:MyWebPart runat="server" ID="MyWebPartID" Title="MyWebPartTitle" AllowClose="False" />

WebPart的信息保存:
 使用aspnet_regsql.exe创建保存webpart页面变化信息的数据库(aspnetdb)。
 在aspnetdb数据库中,有两个表是用来保存个性化信息的:aspnet_PersonalizationAllUsers和aspnet_PersonalizationPerUser

个性化体现:
 A。配置web.config:增加<membership...配置(附连接字符串配置如下)。主要配置有数据提供者,连接字符串,最小密码长度。

Code

  B。点击“网站”-“ASP.NET配置”(Web.config的可视化配置工具)。进入Security进行用户配置。“选择身份验证类型”设为“通过Internet”(即Forms验证)。然后创建几个用户。
  C。把<asp:Login...控件拖到网页(Default.aspx)中。运行,用不同的用户登录可以看到不同的WebPart表示

统一页面设置:实际上,有一些网站并不是所有的用户都能自定义用户界面,而是通过站长来设置,对所有用户都起作用
 A。web.config:在webparts结点下加入<authorization...结点的配置。

<webParts>
   
<personalization>
      
<authorization>
        
<allow users="*" verbs="enterSharedScope"/>
      
</authorization>
    
</personalization>
</webParts>

  B。在网页(Default.aspx)中,为<asp:WebPartManager控件加入属性Personalization-InitialScope="Shared"。
  C。用a用户登录,修改后再用b用户登录。b会看到a的修改。反之亦然,即实现了统一的页面显示

为WebPart添加Verbs
 即为自定义的WebPart添加右上角的下拉操作。主要是在MyWebPart类中重载Verbs属性

Code
原文地址:https://www.cnblogs.com/vipcjob/p/1541387.html