Dotnetnuke: передача данных из одного модуля в другой.

Я разрабатываю веб-сайт с помощью DotNetNuke, модуль за модулем. На странице (вкладке) у меня 3 модуля. 2 модуля - это один и тот же модуль, который является модулями формы, однако я называю его другим именем (Раздел A и Раздел B).

В моих модулях кнопок это связано с обработкой разделов A и B, как я могу передать данные из модулей формы с разделом A и разделом B в модули кнопок на той же странице (вкладки)?

1
0
377
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для этого вам понадобятся интерфейсы IModuleCommunicator и IModuleListener.

В модуле, который будет отправлять данные:

public partial class View : Module1, IModuleCommunicator
{
    public event ModuleCommunicationEventHandler ModuleCommunication;

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            sendDataToOtherModule("This is a test.");
        }
        catch (Exception ex)
        {
            Exceptions.ProcessModuleLoadException(this, ex);
        }
    }

    public void sendDataToOtherModule(string valueToSend)
    {
        ModuleCommunicationEventArgs mcea = new ModuleCommunicationEventArgs();

        mcea.Target = "TheOtherModule";
        mcea.Value = valueToSend;

        ModuleCommunication(this, mcea);
    }
}

На модуле, который будет получать данные

Но вы можете использовать этот код в каждом модуле и проверить Target.

public partial class View : Module2, IModuleListener
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            //module code
        }
        catch (Exception ex)
        {
            Exceptions.ProcessModuleLoadException(this, ex);
        }
    }

    public void OnModuleCommunication(object sender, ModuleCommunicationEventArgs e)
    {
        if (e.Target == "TheOtherModule")
        {
            Label1.Text = e.Value.ToString();
        }
    }
}

Добавьте using DotNetNuke.Entities.Modules.Communications на оба модуля.

Но я нахожусь в том же модуле, что и модуль формы, просто другое название модуля. Могу ли я отправлять данные между двумя модулями формы с разными заголовками? Поскольку в моем сценарии Form Module A у меня есть DataSet A, а в Form Module B у меня есть DataSet B. Я хочу получить все значения DataSet модуля Form в одной вкладке

Chan Yoong Hon 12.04.2018 03:01

Это работает для всех модулей. Он отправляет object другому модулю, чтобы вы могли просто вернуть его к исходному типу данных и работать с ним,

VDWWD 12.04.2018 08:36

Другие вопросы по теме