我正在使用DotNetNuke开发一个网站,逐个模块。 在页面(选项卡)中,我有3个模块。 2个模块是相同的模块,它们是Form模块,但是我将它命名为不同的名称(A部分和B部分)。
在我的Button模块中,它涉及A部分和B部分的处理,如何将带有A部分和B部分的表单模块中的数据传递到同一页面(Tabs)中的Button模块?
答案 0 :(得分:2)
为此,您需要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
。