ä½¿ç¨ Web é¨ä»¶åºç¨ç¨åºä¸çç¨æ·æ§ä»¶æ¶ï¼å¯ä»¥å¨è¿è¡æ¶å©ç¨ WebPart æ§ä»¶çææåè½ãæå
³è¯¦ç»ä¿¡æ¯ï¼è¯·åè§å¨ Web é¨ä»¶åºç¨ç¨åºä¸ä½¿ç¨ ASP.NET æå¡å¨æ§ä»¶ãç¨æ·æ§ä»¶è¿ä¿çäºä½ä¸ºæå¡å¨æ§ä»¶çæ£å¸¸åè½ï¼ä½æä¸ä¸ªä¾å¤ï¼å¨ Web é¨ä»¶åºç¨ç¨åºä¸ä½¿ç¨çç¨æ·æ§ä»¶ä¸ç¦ç¨è¾åºç¼åã对äºæ¯ä¸ªé¡µè¯·æ±ï¼Web é¨ä»¶æ§ä»¶éé½è¦æ±å°æææ§ä»¶æ·»å å°æ§ä»¶æ ãè¦ä½¿ä¸ªæ§å设置åè½è½å¤æ£å¸¸å·¥ä½ï¼ä¸ä¸ªæ§å设置æ°æ®å¯ä»¥å¾è¿åå°æ§ä»¶ï¼è¿æ¯å¿
éçãä½æ¯ï¼å¦æå¨ç¨æ·æ§ä»¶ä¸å¯ç¨äºè¾åºç¼åï¼æ§ä»¶å°ä¸ä¼æ·»å å°æ§ä»¶æ ï¼è¿å°±ä¼ä¸ Web é¨ä»¶åè½åçå²çªãè¿å°±æ¯éè¿è®¾è®¡å¨ Web é¨ä»¶åºç¨ç¨åºä¸çç¨æ·æ§ä»¶ä¸ç¦ç¨è¾åºç¼åçåå ã
å建 Web é¨ä»¶é¡µä»¥æ¿è½½ç¨æ·æ§ä»¶
å建ä¸ä¸ªæ°ç ASP.NET 页ãå¨é¡µé¡¶é¨æ·»å ä¸é¢ç页声æã
VB
<@page language="VB" %>
C#
<@page language="C#" %>
å¨åææ·»å ç页声æä¸é¢ï¼æ·»å 以ä¸å
·æ HTML æ è®°çåºæ¬é¡µç»æã
<html>
<head>
<title>Web Parts Demo Page</title>
</head>
<body>
<h1>Web Parts User Control Demonstration</h1>
<form runat="server">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top">
</td>
<td valign="top">
</td>
<td valign="top">
</td>
</tr>
</table>
</form>
</body>
</html>
å°è¯¥é¡µä¿åå°å¯ç¨äºä¸ªæ§å设置çç«ç¹ä¸çç®å½ä¸ã
å页添å Web é¨ä»¶æ§ä»¶
å¨é¡µç <form> å
ç´ ç´§ä¸é¢ï¼æ·»å ä¸ä¸ª WebPartManager æ§ä»¶ã
<asp:webpartmanager id="WebPartManager1" runat="server" />
å¨ <asp:webpartmanager> å
ç´ çç´§ä¸é¢ã表ç第ä¸ç» <td> æ è®°ï¼ç¬¬ä¸ä¸ªè¡¨åï¼ä¸é´ï¼æ·»å ä¸ä¸ª WebPartZone æ§ä»¶ï¼ä»¥å
å«æ¨å°å¨åé¢çæ¥éª¤ä¸æ·»å çç¨æ·æ§ä»¶ã
<asp:webpartzone id="SideBarZone" runat="server"
headertext="Sidebar Zone">
<zonetemplate>
</zonetemplate>
</asp:webpartzone>
å¨æ¨åææ·»å çåºåç <zonetemplate> å
ç´ ä¸ï¼æ·»å ä¸ä¸ªç°æçæå¡å¨æ§ä»¶ä»¥åä¸äºéæå
容ï¼å¨è¿è¡æ¶ä¼å°å®ä»¬è§ä¸ºå¦ä¸ä¸ª Web é¨ä»¶æ§ä»¶ï¼å 为å®å¨ Web é¨ä»¶åºåä¸ï¼ï¼
<asp:label runat="server" id="linksPart" title="My Links">
<a href="
www.asp.net">ASP.NET site</a>
<br />
<a href="
www.gotdotnet.com">GotDotNet</a>
<br />
<a href="
www.contoso.com">Contoso.com</a>
<br />
</asp:label>
å¨è¡¨ç第äºç» <td> æ è®°ï¼ç¬¬äºä¸ªè¡¨åï¼ä¸ï¼æ·»å å¦ä¸ä¸ª WebPartZone æ§ä»¶ï¼ä»¥å
å«æ¨å°å¨åé¢çæ¥éª¤ä¸æ·»å çç¨æ·æ§ä»¶ã
<asp:webpartzone id="MainZone" runat="server"
headertext="Main Zone">
<zonetemplate>
</zonetemplate>
</asp:webpartzone>
å¨è¡¨ç第ä¸ä¸ª <td> å
ç´ ï¼ç¬¬ä¸åï¼ä¸ï¼æ·»å ä¸ä¸ª <asp:editorzone> å
ç´ ãæ·»å ä¸ä¸ª <zonetemplate> å
ç´ ï¼ç¶åæ·»å ä¸ä¸ª<asp:appearanceeditorpart> åä¸ä¸ª <asp:layouteditorpart> å
ç´ ãç¼è¾å¨åºåä¸ç代ç åºç±»ä¼¼äºä¸é¢è¿æ ·ï¼
<asp:editorzone id="EditorZone1" runat="server">
<zonetemplate>
<asp:appearanceeditorpart runat="server"
id="AppearanceEditorPart1" />
<asp:layouteditorpart runat="server"
id="LayoutEditorPart1" />
</zonetemplate>
</asp:editorzone>
ä¿å页ã
å建ç¨æ·æ§ä»¶
å¨ææ¬ç¼è¾å¨ä¸å建ä¸ä¸ªæ°æ件ãæ¤æ件å°å
å«ä¹å¯ä»¥ä½ä¸º Web é¨ä»¶æ§ä»¶æ·»å å°é¡µé¢çç¨æ·æ§ä»¶ã
注æ
æ¬æ¼ç»çæç´¢æ§ä»¶å¹¶ä¸å®ç°å®é
çæç´¢åè½ï¼å®åªç¨äºæ¼ç¤º Web é¨ä»¶åè½ã
å¨æ°æ件ç顶é¨ï¼å¦ä¸ä¾ä¸æ示添å æ§ä»¶å£°æã
VB
<%@ control language="VB" classname="SearchUserControl" %>
C#
<%@ control language="C#" classname="SearchUserControl" %>
å¨æ§ä»¶å£°æçä¸é¢ï¼æ·»å ä¸å¯¹ <script> æ è®°ï¼å¹¶å¨è¿å¯¹æ è®°ä¹é´æ·»å ç¨äºå建å¯ä¸ªæ§å设置çå±æ§ç代ç ã请注æï¼ResultsPerPage å±æ§ (Property) å
å«ä¸ä¸ª Personalizable å±æ§ (Attribute)ãå¦ææä¾äºå
·æç¨æ·çé¢ (UI) çç¼è¾æ§ä»¶å¨â设计âè§å¾ä¸æ´æ¹è®¾ç½®ï¼åæ¤å±æ§å°ä½¿æ§ä»¶çç¨æ·è½å¤ä¸ªæ§å设置æ¯ä¸é¡µè¦è¿åçæç´¢ç»ææ°éãæ§ä»¶ç代ç åºå½ç±»ä¼¼äºä¸é¢ç代ç 示ä¾ã
VB
<%@ control language="VB" classname="SearchUserControl" %>
<script runat="server">
Private results As Integer
<Personalizable()> _
Property ResultsPerPage() As Integer
Get
Return results
End Get
Set(ByVal value As Integer)
results = value
End Set
End Property
</script>
C#
<%@ control language="C#" classname="SearchUserControl" %>
<script runat="server">
private int results;
[Personalizable]
public int ResultsPerPage
{
get
{return results;}
set
{results = value;}
}
</script>
å¨ <script> å
ç´ çä¸é¢æ·»å ä¸ä¸ªææ¬æ¡åä¸ä¸ªæé®ï¼ä»¥ä¾¿ä¸ºæç´¢æ§ä»¶æä¾åºæ¬çç¨æ·çé¢ï¼å¦ä¸é¢ç代ç 示ä¾æ示ã
<asp:textbox runat="server" id="inputBox"></asp:textbox>
<br />
<asp:button runat="server" id="searchButton" text="Search" />
å°æ件å½å为 SearchUserControlVB.ascx æ SearchUserControlCS.ascxï¼å
·ä½åå³äºæ¨ä½¿ç¨çè¯è¨ï¼ï¼å¹¶å°å
¶ä¿åå° WebPartsDemo.aspx 页æå¨çç®å½ä¸ã
å®å
¨æ³¨æ
该æ§ä»¶å
·æä¸ä¸ªææ¬æ¡ï¼ç¨äºæ¥åç¨æ·è¾å
¥ï¼è¿æ¯ä¸ä¸ªæ½å¨çå®å
¨å¨èãç½é¡µä¸çç¨æ·è¾å
¥å¯è½ä¼å
å«å
·ææ¶æç客æ·ç«¯èæ¬ãé»è®¤æ
åµä¸ï¼ASP.NET ç½é¡µéªè¯ç¨æ·è¾å
¥ï¼ä»¥ç¡®ä¿è¾å
¥ä¸ä¸å
å« HTML å
ç´ æèæ¬ãåªè¦å¯ç¨äºæ¤éªè¯ï¼å°±ä¸éè¦æ¾å¼æ£æ¥ç¨æ·è¾å
¥ä¸çèæ¬æ HTML å
ç´ ãæå
³æ´å¤ä¿¡æ¯ï¼è¯·åè§èæ¬ä¾µå
¥æ¦è¿°ã
å¨ä¸» Web é¨ä»¶åºåä¸å¼ç¨ç¨æ·æ§ä»¶
å¨ç½é¡µç顶é¨ï¼å°ä¸é¢ç声ææ·»å å°é¡µå£°æçåé¢ï¼ä»¥å¼ç¨ååå建çç¨æ·æ§ä»¶ãå¦ææ¨ä½¿ç¨çä¸æ¯æ¬ä¸»é¢ä¸æä¾çç¨æ·æ§ä»¶ç¤ºä¾ï¼åéè¦å° src å±æ§è®¾ç½®ä¸ºæ¨æ使ç¨çç¨æ·æ§ä»¶çè·¯å¾åæ件åï¼æ¨è¿å¯ä»¥éæ©ä¸º tagname å±æ§èµä¸ä¸ªä¸åçå¼ã
[VB]
<%@ register tagprefix="uc1" tagname="SearchUserControl"
src="searchusercontrolvb.ascx" %>
[C#]
<%@ register tagprefix="uc1" tagname="SearchUserControl"
src="searchusercontrolcs.ascx" %>
å¨ä¸»åºåç <zonetemplate> å
ç´ ä¸ï¼å¼ç¨æ¨å¨åé¢å建çç¨æ·æ§ä»¶ã
<uc1:SearchUserControl id="searchPart" runat="server"
title="Search" />
ä¿ååå
³é该页ã