VS2013 中怎么创建Web用户控件
2个回答
展开全部
使用 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" />
保存和关闭该页。
创建 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" />
保存和关闭该页。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是不是想开发第三方控件?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询