欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

创建自定义的WebPart 博客分类: net

程序员文章站 2024-03-19 20:52:52
...

创建一个自定义的WebPart控件类似与创建自定义服务器控件,其构建的内容包括很多方面:
(1)构造函数
创建自定义的WebPart必须继承自WebPart类,在自定义类的构造函数中对WebPart的固有属性进行设置,如Title、AllowColse等。
(2)行为属性
主要包括重写AllowClose、AllowEdit、AllowConnect等“Allow”类型行为属性。虽然可以在类构造函数中对这些“Allow”类型属性设置默认值,但是通过重写属性可以更好的保护行为属性不被修改。
(3)CreatChildControls、RenderControl和RendContents方法
以上3个方法继承自Control类或者WebControl基类。通过重写这些方法,可以为自定义的WebPart添加子控件、字符串等内容,从而实现自定义WebPart的显示内容、外观和样式等。
(4)自定义操作项
WebPart类本身提供了很多个操作项,如,Close、Edit、Delete等。开发人员可以实现自定义的操作项来增加灵活性,其实现的核心是创建自定义的WebPartVerb对象。
(5)CreatEditorParts方法
如果要在编辑区域中对自定义属性进行编辑,必须实现CreatEditorParts方法。
(6)元数据属性
在自定义类中创建自定义属性的时候,可以在该属性前添加[Personalizable(), WebBrowsable]。Personalizable表示是个性化属性能够持久保存;WebBrowsable表示该属性能够在编辑模型下被用户修改。

实现一个自定义的WebPart:

创建自定义的WebPart
            
    
    博客分类: net创建自定义的WebPart
            
    
    博客分类: netDefault.aspx
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->创建自定义的WebPart
            
    
    博客分类: net<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>
创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net
<%@RegisterTagPrefix="cc1"Namespace="Samples.AspNet.CS.Controls"%>
创建自定义的WebPart
            
    
    博客分类: net
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
创建自定义的WebPart
            
    
    博客分类: net
<html>
创建自定义的WebPart
            
    
    博客分类: net
<headid="Head1"runat="server">
创建自定义的WebPart
            
    
    博客分类: net
</head>
创建自定义的WebPart
            
    
    博客分类: net
<body>
创建自定义的WebPart
            
    
    博客分类: net
<formid="Form1"runat="server">
创建自定义的WebPart
            
    
    博客分类: net
<asp:WebPartManagerID="WebPartManager1"runat="server"/>
创建自定义的WebPart
            
    
    博客分类: net
<asp:WebPartZoneID="WebPartZone1"runat="server"title="Zone1"BorderColor="#CCCCCC"Font-Names="Verdana"Padding="6">
创建自定义的WebPart
            
    
    博客分类: net
<PartTitleStyleFont-Bold="true"ForeColor="White"BackColor="#5D7B9D"Font-Size="0.8em"/>
创建自定义的WebPart
            
    
    博客分类: net
<PartStyleBorderWidth="1px"BorderStyle="Solid"BorderColor="#81AAF2"Font-Size="0.8em"ForeColor="#333333"/>
创建自定义的WebPart
            
    
    博客分类: net
<ZoneTemplate>
创建自定义的WebPart
            
    
    博客分类: net
<cc1:TextDisplayWebPartrunat="server"ID="textwebpart"Title="TextContentWebPart"AllowClose="False"/>
创建自定义的WebPart
            
    
    博客分类: net
</ZoneTemplate>
创建自定义的WebPart
            
    
    博客分类: net
<PartChromeStyleBackColor="#F7F6F3"BorderColor="#E2DED6"Font-Names="Verdana"ForeColor="White"/>
创建自定义的WebPart
            
    
    博客分类: net
<MenuLabelHoverStyleForeColor="#E2DED6"/>
创建自定义的WebPart
            
    
    博客分类: net
<EmptyZoneTextStyleFont-Size="0.8em"/>
创建自定义的WebPart
            
    
    博客分类: net
<MenuLabelStyleForeColor="White"/>
创建自定义的WebPart
            
    
    博客分类: net
<MenuVerbHoverStyleBackColor="#F7F6F3"BorderColor="#CCCCCC"BorderStyle="Solid"
创建自定义的WebPart
            
    
    博客分类: netBorderWidth
="1px"ForeColor="#333333"/>
创建自定义的WebPart
            
    
    博客分类: net
<HeaderStyleFont-Size="0.7em"ForeColor="#CCCCCC"HorizontalAlign="Center"/>
创建自定义的WebPart
            
    
    博客分类: net
<MenuVerbStyleBorderColor="#5D7B9D"BorderStyle="Solid"BorderWidth="1px"ForeColor="White"/>
创建自定义的WebPart
            
    
    博客分类: net
<TitleBarVerbStyleFont-Size="0.6em"Font-Underline="False"ForeColor="White"/>
创建自定义的WebPart
            
    
    博客分类: net
<MenuPopupStyleBackColor="#5D7B9D"BorderColor="#CCCCCC"BorderWidth="1px"Font-Names="Verdana"
创建自定义的WebPart
            
    
    博客分类: netFont
-Size="0.6em"/>
创建自定义的WebPart
            
    
    博客分类: net
</asp:WebPartZone>
创建自定义的WebPart
            
    
    博客分类: net
</form>
创建自定义的WebPart
            
    
    博客分类: net
</body>
创建自定义的WebPart
            
    
    博客分类: net
</html>


TextDisplayWebPart.cs在App_Code目录中

创建自定义的WebPart
            
    
    博客分类: net创建自定义的WebPart
            
    
    博客分类: netTextDisplayWebPart.cs
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->创建自定义的WebPart
            
    
    博客分类: netusingSystem;
创建自定义的WebPart
            
    
    博客分类: net
usingSystem.Security.Permissions;
创建自定义的WebPart
            
    
    博客分类: net
usingSystem.Web;
创建自定义的WebPart
            
    
    博客分类: net
usingSystem.Web.UI.WebControls;
创建自定义的WebPart
            
    
    博客分类: net
usingSystem.Web.UI.WebControls.WebParts;
创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net
namespaceSamples.AspNet.CS.Controls
创建自定义的WebPart
            
    
    博客分类: net创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net{
创建自定义的WebPart
            
    
    博客分类: net[AspNetHostingPermission(SecurityAction.Demand,
创建自定义的WebPart
            
    
    博客分类: netLevel
=AspNetHostingPermissionLevel.Minimal)]
创建自定义的WebPart
            
    
    博客分类: net[AspNetHostingPermission(SecurityAction.InheritanceDemand,
创建自定义的WebPart
            
    
    博客分类: netLevel
=AspNetHostingPermissionLevel.Minimal)]
创建自定义的WebPart
            
    
    博客分类: net
publicclassTextDisplayWebPart:WebPart
创建自定义的WebPart
            
    
    博客分类: net创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net{
创建自定义的WebPart
            
    
    博客分类: net
privateString_contentText=null;
创建自定义的WebPart
            
    
    博客分类: netTextBoxinput;
创建自定义的WebPart
            
    
    博客分类: netLabelDisplayContent;
创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net
publicTextDisplayWebPart()
创建自定义的WebPart
            
    
    博客分类: net创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net{
创建自定义的WebPart
            
    
    博客分类: net
this.AllowClose=false;
创建自定义的WebPart
            
    
    博客分类: net}

创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net[Personalizable(),WebBrowsable]
创建自定义的WebPart
            
    
    博客分类: net
publicStringContentText
创建自定义的WebPart
            
    
    博客分类: net创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net{
创建自定义的WebPart
            
    
    博客分类: net创建自定义的WebPart
            
    
    博客分类: net
get创建自定义的WebPart
            
    
    博客分类: net{return_contentText;}
创建自定义的WebPart
            
    
    博客分类: net创建自定义的WebPart
            
    
    博客分类: net
set创建自定义的WebPart
            
    
    博客分类: net{_contentText=value;}
创建自定义的WebPart
            
    
    博客分类: net}

创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net
protectedoverridevoidCreateChildControls()
创建自定义的WebPart
            
    
    博客分类: net创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net{
创建自定义的WebPart
            
    
    博客分类: netControls.Clear();
创建自定义的WebPart
            
    
    博客分类: netDisplayContent
=newLabel();
创建自定义的WebPart
            
    
    博客分类: netDisplayContent.BackColor
=
创建自定义的WebPart
            
    
    博客分类: netSystem.Drawing.Color.LightBlue;
创建自定义的WebPart
            
    
    博客分类: netDisplayContent.Text
=this.ContentText;
创建自定义的WebPart
            
    
    博客分类: net
this.Controls.Add(DisplayContent);
创建自定义的WebPart
            
    
    博客分类: netinput
=newTextBox();
创建自定义的WebPart
            
    
    博客分类: net
this.Controls.Add(input);
创建自定义的WebPart
            
    
    博客分类: netButtonupdate
=newButton();
创建自定义的WebPart
            
    
    博客分类: netupdate.Text
="SetLabelContent";
创建自定义的WebPart
            
    
    博客分类: netupdate.Click
+=newEventHandler(this.submit_Click);
创建自定义的WebPart
            
    
    博客分类: net
this.Controls.Add(update);
创建自定义的WebPart
            
    
    博客分类: netChildControlsCreated
=true;
创建自定义的WebPart
            
    
    博客分类: net}

创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net
privatevoidsubmit_Click(objectsender,EventArgse)
创建自定义的WebPart
            
    
    博客分类: net创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net{
创建自定义的WebPart
            
    
    博客分类: net
//Updatethelabelstring.
创建自定义的WebPart
            
    
    博客分类: net
if(input.Text!=String.Empty)
创建自定义的WebPart
            
    
    博客分类: net创建自定义的WebPart
            
    
    博客分类: net
创建自定义的WebPart
            
    
    博客分类: net{
创建自定义的WebPart
            
    
    博客分类: net_contentText
=input.Text+@"<br/>";
创建自定义的WebPart
            
    
    博客分类: netinput.Text
=String.Empty;
创建自定义的WebPart
            
    
    博客分类: netDisplayContent.Text
=this.ContentText;
创建自定义的WebPart
            
    
    博客分类: net}

创建自定义的WebPart
            
    
    博客分类: net}

创建自定义的WebPart
            
    
    博客分类: net}

创建自定义的WebPart
            
    
    博客分类: net}


效果图:

<script type="text/javascript"> <!-- var theForm = document.forms['Form1']; if (!theForm) { theForm = document.Form1; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } // --> </script><script src="/WebPart2/WebResource.axd?d=hVGcGlsBwbo_sCVGagOE8Q2&amp;t=632959453400000000" type="text/javascript"></script>

Text Content WebPart u
33339