我想创建一个基本的webpart类(它应该具有在此.cs文件中创建的文本框和标签等控件,这些控件继承自webpart)。在我的aspx页面中,我创建了一个webpart管理器和一个webpart区域。现在我想使用我在2个aspx页面中创建的这个webpart来演示webparts的可重用性
这是我的代码
namespace PartsControl
{
public class AddrPart : WebPart
{
public AddrPart()
{
}
protected override void CreateChildControls()
{
base.CreateChildControls();
_divPanel.ID = "_divPanel";
_divPanel.BorderStyle = BorderStyle.Ridge;
_divPanel.Width = 250;
_divPanel.Height = 300;
_divPanel.BackColor = System.Drawing.Color.Gainsboro;
Controls.Add(_divPanel);
}
protected override void OnPreRender(EventArgs e)
{
}
protected override void Render(HtmlTextWriter writer)
{
base.RenderControl(writer);
writer.Write(" <div id='_divPanel'>");
writer.Write(" <table style='border-right: 1px ridge; border-top: 1px ridge; border-left: 1px ridge;");
writer.Write(" border-bottom: 1px ridge; background-color: gainsboro;' cellpadding='3' cellspacing='2'");
writer.Write(" width='250'>");
if (_sErrDescription == "")
{
// dropdownlist State
writer.Write(" <tr style='border-right: 1px ridge; border-top: 1px ridge; border-left: 1px ridge;");
writer.Write(" border-bottom: 1px ridge;'>");
writer.Write(" <td style='height: 50px'>");
_ddlCountry.RenderControl(writer);
writer.Write(" </td>");
writer.Write(" </tr>");
}
}
aspx页面:
<body>
<form id="form1" runat="server">
<asp:WebPartManager ID="WebPartManager1" runat="server">
<Personalization Enabled="false" />
</asp:WebPartManager>
<asp:WebPartZone ID="WebPartZone1" runat="server" Width = "100%">
//在这里添加webpart
我想在aspx页面中添加我的webpart作为控件。 我的查询是如何将我的webpart类作为控件,以便我可以在aspx页面中重用它
答案 0 :(得分:0)
编译您的WebPart并将.dll文件放在Web项目的bin文件夹中
然后你必须修改你的aspx页面才能注册webpart。
这是一个示例.aspx页面,允许您添加webpart。
替换WEBPARTDLLNAME,NAMESPACE和CLASSNAME。
当您第一次启动网页时,页面为空。单击目录并将webpart添加到您的webpartzone。
<%@ Page Language="C#" %>
<%@ Register Assembly="WEBPARTDLLNAME" Namespace="NAMESPACE" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Edit_Click(object sender, EventArgs e)
{
if (WebPartManager1.Personalization.Scope == PersonalizationScope.User)
{
WebPartManager1.Personalization.ToggleScope();
}
WebPartManager1.DisplayMode = WebPartManager.EditDisplayMode;
}
protected void Connection_Click(object sender, EventArgs e)
{
if (WebPartManager1.Personalization.Scope == PersonalizationScope.User)
{
WebPartManager1.Personalization.ToggleScope();
}
WebPartManager1.DisplayMode = WebPartManager.ConnectDisplayMode;
}
protected void Catalog_Click(object sender, EventArgs e)
{
if (WebPartManager1.Personalization.Scope == PersonalizationScope.User)
{
WebPartManager1.Personalization.ToggleScope();
}
WebPartManager1.DisplayMode = WebPartManager.CatalogDisplayMode;
}
protected void Browse_Click(object sender, EventArgs e)
{
if (WebPartManager1.Personalization.Scope == PersonalizationScope.User)
{
WebPartManager1.Personalization.ToggleScope();
}
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>WebPart</title>
</head>
<body>
<form id="form1" runat="server" >
<div >
<asp:WebPartManager Personalization-InitialScope="Shared" ID="WebPartManager1" runat="server"></asp:WebPartManager>
<asp:WebPartZone ID="WebPartZone1" runat="server" >
</asp:WebPartZone>
<div id="configuratinDIV">
<asp:CatalogZone ID="CatalogZone1" runat="server" >
<ZoneTemplate>
<asp:DeclarativeCatalogPart
ID="DeclarativeCatalogPart1" runat="server">
<WebPartsTemplate>
<cc1:CLASSNAME ID="WebPart1"
runat="server" Title="WebPart"></cc1:CLASSNAME>
</WebPartsTemplate>
</asp:DeclarativeCatalogPart>
<asp:PageCatalogPart ID="PageCatalogPart1"
runat="server"></asp:PageCatalogPart>
</ZoneTemplate>
</asp:CatalogZone>
<br />
<asp:EditorZone ID="EditorZone1" runat="server" >
<ZoneTemplate>
<asp:PropertyGridEditorPart
ID="PropertyGridEditorPart1" runat="server" />
</ZoneTemplate>
</asp:EditorZone>
<br />
<asp:ConnectionsZone ID="ConnectionsZone1" runat="server" >
</asp:ConnectionsZone>
</div>
</div>
<div class="editor">
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="Edit_Click" style="position: static;">Edit</asp:LinkButton> |
<asp:LinkButton ID="LinkButton2" runat="server" OnClick="Connection_Click" style="position: static;">Connections</asp:LinkButton> |
<asp:LinkButton ID="LinkButton3" runat="server" OnClick="Catalog_Click" style=" position: static">Catalog</asp:LinkButton> |
<asp:LinkButton ID="LinkButton4" runat="server" OnClick="Browse_Click" style="position: static;">Browse</asp:LinkButton>
</div>
</form>
</body>
</html>