首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DotNetNuke DDRMenu在后面的代码中设置NodeSelector

DotNetNuke DDRMenu在后面的代码中设置NodeSelector
EN

Stack Overflow用户
提问于 2014-10-20 14:56:18
回答 1查看 629关注 0票数 1

我正在使用DDRMenu in DotNetNuke从我的站点结构中选择一个菜单节点,并在模板中的特定导航中只显示一个子节点

代码语言:javascript
复制
<%@ Register TagPrefix="dnn" TagName="MENU" Src="~/DesktopModules/DDRMenu/Menu.ascx" %>
<dnn:MENU ID="MenuFooter" MenuStyle="MenuFooter" IncludeHidden="true" NodeSelector="FooterNavigation,0,1" runat="server" ></dnn:MENU>

现在,我希望能够在文件后面的代码中设置NodeSelector属性,因为我希望能够动态地设置Page_Load的值。

代码语言:javascript
复制
// load footer navigation node from a config file
protected void Page_Load(object sender, EventArgs e)
{
     var footerNode = Config.Instance.Navigation.FooterNode;
     MenuFooter.NodeSelector = footerNode + ",0,1";
}

但是这是行不通的,因为在NodeSelector上没有System.Web.UI.UserControl属性。

错误'System.Web.UI.UserControl‘不包含'NodeSelector’的定义,也找不到接受'System.Web.UI.UserControl‘类型的第一个参数的扩展方法'NodeSelector’(您缺少使用指令还是程序集引用?)C:\Projects\eWolf2012\dev\DNN\Portals_default\Skins\JWEwolfSkin2012\Simple.ascx.cs 141 24 JWEwolfSkin2012

有办法做到这一点吗?

亲切的问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-21 07:17:53

通常,Menu.ascx in DDRMenu继承自DDRMenu SkinObject

代码语言:javascript
复制
<%@ Control Language="C#" AutoEventWireup="false" EnableViewState="false" Inherits="DotNetNuke.Web.DDRMenu.SkinObject" %>

由于您讨论的是更改后面的代码,我猜您使用的是嵌入Menu.ascx的自定义控件。在这种情况下,您应该能够访问NodeSelector属性,因为它存在于SkinObject类中。

我怀疑发生的情况是,您的控件类型没有被设计器正确加载,并且它落在没有NodeSelector属性的NodeSelector类型上。

尝试以下几点:

  • 将DDRMenu程序集包含在当前项目中(因为如果找不到程序集,它就不会加载类型),然后重写包含以启动设计器。我很确信这就是问题的原因,但如果不是的话:
  • attribute并签入*.designer文件--定义了什么类型。
  • 在代码隐藏文件中手动定义它,而不是让设计人员来完成它。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26468697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档