我目前正在构建一个Web应用程序,它将成为我公司的新数据中心(Intranet网站)。我将其连接到活动目录,并设置了一个用户组以允许页面编辑。我正在创建一个用户控件,以赋予我们的质量检查经理更大的编辑能力,以便他可以管理站点而无需我重新编码任何内容。
这是我的问题: 因为我正在使用用户控件作为新的编辑控件;我需要能够在使用编辑控件的任何页面上访问控件。对于我的一生,我不知道该怎么做。
这是我要执行的操作的一个简单示例:
WebPartManager wpm = (WebPartManager)WebPartManager.GetCurrentWebPartManager(this.Page);
TextBox testBox = new TextBox
{
ForeColor = System.Drawing.Color.Blue,
ID = "testID",
Width = 500,
Height = 200
};
GenericWebPart testGWP = wpm.CreateWebPart(testBox);
wpm.AddWebPart(testGWP, WebPartZone4, 1); //heres where I get my error. WebPartZone4 is a webPartZone in one of my pages.
如果我在表示WebPartZone的页面上运行此代码,则可以实现所需的效果,因此我知道该代码有效。我的用户控件仅在另一页上看不到WebPartZone。根本没有任何帮助。谢谢。
答案 0 :(得分:1)
我对最终的成功感到有些愚蠢,但这是给所有遇到相同问题的人的。
这是我用来测试该用户控件的设计。它只是一个按钮。 xD
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl3.ascx.cs" Inherits="AcmeCompany_DATA_CENTER_v2.WebUserControl3" %>
<asp:Button ID="Button1" runat="server" OnClientClick="Button1_Click" Text="Button" OnClick="ButtonCreate_Click" PostBackUrl="~/WebUserControl3.ascx" />
此处是用户控件的代码
protected void ButtonCreate_Click(object sender, EventArgs e)
{
WebPartManager wpm = (WebPartManager)WebPartManager.GetCurrentWebPartManager(this.Page);
TextBox testBox = new TextBox
{
ForeColor = System.Drawing.Color.Blue,
ID = "testID",
Width = 500,
Height = 200
};
GenericWebPart testGWP = wpm.CreateWebPart(testBox);
wpm.AddWebPart(testGWP, wpm.Zones["WebPartZone4"], 1);
}
我没有意识到webpartmanager内部的Zones类,并且偶然发现它只是在滚动查找可能有用的东西。多田.....总是小事。
P.S。 @MaciejS。谢谢,虽然您没有给我答案,但我们的交谈帮助我的大脑思考寻找某些东西。