Dotnetnuke DNN主题。如何从设置中填充DropDownList值?

Dotnetnuke DNN主题。如何从设置中填充DropDownList值?,dotnetnuke,dotnetnuke-9,Dotnetnuke,Dotnetnuke 9,我一直在为几个客户开发DNN主题。 主题有一个下拉列表及其值​​对于每个客户机都是不同的。我不想创建很多主题(每个客户端一个),因为DropDownList的值​​这是他们之间唯一的区别 如何填写DropDownList值​​基于一些主题配置?为了在我的主题上实现这个behivor,我使用DotNetNuke.Common.Utilities.Config类 首先,我在dnnweb.config中创建一个应用程序设置 您可以手动执行此操作: …或者您可以从代码中添加这些值: public

我一直在为几个客户开发DNN主题。 主题有一个下拉列表及其值​​对于每个客户机都是不同的。我不想创建很多主题(每个客户端一个),因为DropDownList的值​​这是他们之间唯一的区别


如何填写DropDownList值​​基于一些主题配置?

为了在我的主题上实现这个behivor,我使用DotNetNuke.Common.Utilities.Config类

  • 首先,我在dnnweb.config中创建一个应用程序设置
您可以手动执行此操作:

…或者您可以从代码中添加这些值:

public static void AddAppSetting(string name, string value)
    {
        var xmlDocument = DotNetNuke.Common.Utilities.Config.AddAppSetting(DotNetNuke.Common.Utilities.Config.Load(), name, value);
        DotNetNuke.Common.Utilities.Config.Save(xmlDocument);

    }
  • 使用此属性,您始终可以通过以下方式填充DropDownList:

        var stylesCommaSeparated = DotNetNuke.Common.Utilities.Config.GetSetting("DropDownListValues");
        stylesCommaSeparated.Split(',').ForEach(setting=>DropDownList1.Items.Add(setting));
    

非常有趣的方法-但请注意,使用
AddAppSetting
功能-每次保存都会触发应用程序池回收。这可能是一个问题,取决于您如何使用它以及谁在添加设置。