WebPart学习
内容:
功能简介
webpart的五个模式
自定义webpart部件
一、Webpart功能简介
1. 自定义页面内容
2. 自定义页面布局
3. 导入、导出webpart
4. 在不同部件间建立通信
5. 管理和个性化的设置
二、创建Webpart
1. 用现成web控件建立
2. 自定义webpart
继承自WebPart类
重要方法:
public override void RenderControl(HtmlTextWriter writer)
三、WebPart的模式:
WebPartManager1.DisplayMode=WebPartManager.BrowseDisplayMode;
WebPartManager1.DisplayMode=WebPartManager.DesignDisplayMode;
WebPartManager1.DisplayMode = WebPartManager.EditDisplayMode;
WebPartManager1.DisplayMode = WebPartManager.CatalogDisplayMode;
WebPartManager1.DisplayMode = WebPartManager.ConnectDisplayMode;
对于后四个模式要使用下面的web.config中的个性化配置才能启用
<webParts enableExport="true">
<personalization>
<authorization>
<allow users="gong" verbs="enterSharedScope"/>
</authorization>
</personalization>
</webParts>
1. 浏览模式:
显示部件,不能作其它操作
2. 设计模式
可以删除,拖放部件
3. 编辑模式
可以删除,拖放部件
修改webpart的相关外观、行为和属性
4. 目录模式
支持导入、导出功能,添加webpart控件
在目录模式中可以导出一个webpart
1.设置web.config
<webParts enableExport="true">
<personalization>
<authorization>
<allow users="gong" verbs="enterSharedScope"/>
</authorization>
</personalization>
</webParts>
2.设置webpart控件的ExportMode属性为非None
5. 连接模式
多个webpart间数据的通信
Webpart连接:
1. 设置两个WebPart间的通讯接口
public interface ITestWord
{
string TestText
{
get;
set;
}
}
2. 实现提供者webpart
public class TempWebpart : WebPart,ITestWord
[Personalizable(true),WebBrowsable(true)]
public string TestText //ItestWord接口数据实现
标记提供者函数
[ConnectionProvider("TestWordProvider","TestWordProvider")]
public ITestWord ProvideTest()
{
return this;
}
3. 实现订阅者webpart
public class TestConsumer : WebPart
//标记订阅者函数
[ConnectionConsumer("TestWordConsumer","TestWordConsumer")]
public void GetTest(ITestWord testWord)
4. 界面设置
静态连接:
<asp:WebPartManager ID="WebPartManager1" runat="server">
<StaticConnections>
<asp:WebPartConnection ID="tt1" ProviderID="temp1" ConsumerID="testconsumer1"
ProviderConnectionPointID="TestWordProvider" ConsumerConnectionPointID="TestWordConsumer" />
</StaticConnections>
</asp:WebPartManager>
动态连接:
在<asp:WebPartManager ID="WebPartManager1" runat="server">
</asp:WebPartManager>之间没有内容
下面的设置一样
<asp:WebPartZone ID="WebPartZone3" runat="server">
<ZoneTemplate>
<test:tempwebpart id="temp1" runat="server" />
</ZoneTemplate>
</asp:WebPartZone>
<asp:WebPartZone ID="WebPartZone4" runat="server">
<ZoneTemplate>
<test:testconsumer ID="testconsumer1" runat="server" />
</ZoneTemplate>
</asp:WebPartZone>