ASP.net(C#):是否可以从另一个Web窗体访问控件?

时间:2018-12-05 23:14:23

标签: c# asp.net webforms user-controls web-parts

我目前正在构建一个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。根本没有任何帮助。谢谢。

1 个答案:

答案 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。谢谢,虽然您没有给我答案,但我们的交谈帮助我的大脑思考寻找某些东西。