我想出了一种方法,可以将相同的模块添加到特定门户上的页面,并使用我可以设置的 ID 将已经保存在设置中的内容链接起来。
因此,如果我想在多个页面或页脚内容上使用相同的电话号码,那么我可以将设置部分中的 HTML 字段留空,并将 ID 设置为与我最初使用 HTML 内容配置的 ID 相同。
这是模块设置加载时的代码:
if (Page.IsPostBack == false)
{
per tab settings
var dictSettings = m_PortalController.GetPortalSettings(PortalId);
if (Settings.Contains("GlobalIDHTML"))
{
txtIDGlobalHTML.Text = Settings["GlobalIDHTML"].ToString();
LinkID = Settings["GlobalIDHTML"].ToString();
}
if (dictSettings.ContainsKey("GlobalHTML"+ LinkID))
{
txtGlobalHTML.Text = dictSettings["GlobalHTML"+ LinkID];
}
}
这是更新设置的代码:
public override void UpdateSettings()
{
try
{
var modules = new ModuleController();
modules.UpdateModuleSetting(ModuleId, "GlobalIDHTML", txtIDGlobalHTML.Text);
modules.UpdateTabModuleSetting(TabModuleId, "GlobalIDHTML", txtIDGlobalHTML.Text);
var globalstoragevalue = "GlobalHTML"+ txtIDGlobalHTML.Text;
if (txtGlobalHTML.Text != null && !string.IsNullOrWhiteSpace(txtGlobalHTML.Text))
{
PortalController.UpdatePortalSetting(PortalId, globalstoragevalue, txtGlobalHTML.Text);
}
}
catch (Exception exc) //Module failed to load
{
Exceptions.ProcessModuleLoadException(this, exc);
}
}
页面加载时我的代码:
try
{
if (Settings["GlobalIDHTML"] != null && !string.IsNullOrWhiteSpace(Settings["GlobalIDHTML"].ToString()))
{
GlobalLinkID = Settings["GlobalIDHTML"].ToString();
}
GlobalContent = TryGetPortalSetting("GlobalHTML"+ GlobalLinkID);
if (GlobalContent != null)
{
GlobalPageContent = GlobalContent;
}
}
模块设置:
![在此处输入图像描述](https://i.stack.imgur.com/O3Lvw.jpg)
结果:
![在此处输入图像描述](https://i.stack.imgur.com/eV2Mf.jpg)