ASP.net (C #): возможно ли получить доступ к элементам управления одной веб-формы из другой? - PullRequest
0 голосов
/ 06 декабря 2018

В настоящее время я создаю веб-приложение, которое станет новым центром обработки данных (веб-сайт интрасети) для моей компании.Я подключил его к активному каталогу и настроил группу пользователей, чтобы разрешить редактирование страницы.Я создаю пользовательский контроль, чтобы дать нашему менеджеру по контролю больше возможностей редактирования, чтобы он мог управлять сайтом без необходимости что-либо перекодировать.

Вот моя проблема: Поскольку я использую пользовательский контроль в качестве нового элемента управления для редактирования;Мне нужно иметь доступ к элементам управления на любой странице, на которой используется элемент редактирования.Что касается жизни, я не могу понять, как это сделать.

Вот простой пример того, что я пытаюсь сделать:

 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 желаемый эффект достигается, поэтому я знаю, код работает.Мой usercontrol просто не может увидеть WebPartZone на другой странице.Любая помощь была бы великолепна.Спасибо.

1 Ответ

0 голосов
/ 07 декабря 2018

Я чувствую себя немного глупо из-за того, как легко это закончилось, но здесь для тех, у кого такая же проблема.

Вот схема простого пользовательского элемента управления, который я использовал для проверки этого.Это просто кнопка.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);
    }

Я не знал о классе Zones внутри webpartmanager и наткнулся на него, просто просматривая что-то, чтоможет работать.Тада ..... Это всегда мелочи.

PS @Maciej S. Спасибо, пока ты не дал мне ответ, наши разговоры помогли моему мозгу подумать о том, чтобы искать определенные вещи.

...